문제

나는 이미 이런 질문이 있었지만 어쨌든 이미 삭제했습니다.

루트 뷰 컨트롤러가있는 매우 간단한 앱이 있으며 다른 뷰 컨트롤러 뷰 사이를 전환합니다. 루트 뷰 컨트롤러에서 게으른 두 개의 다른 뷰 컨트롤러의 인스턴스를로드합니다. 도구 모음의 스위치 버튼을 누를 때마다 표시되는 현재 뷰 컨트롤러 (뷰)가 언로드되고 (NIL로 설정) 새 뷰가로드되어 하위 뷰에 추가됩니다.

내 뷰 컨트롤러를로드하고 특정 시간에 언로드하기 때문에, 게터에 게으른로드 코드가 실제로 사용될 때 바로로드하고 싶지 않기 때문에 매우 혼란 스럽습니다. 좋아 보인다. 따라서 뷰 컨트롤러를로드하기 위해 LoadFirstVC 및 LoadSeconDVC 메소드를 만들고 싶다고 생각합니다. 이것이 좋은 생각입니까?

도움이 되었습니까?

해결책

게으른로드의 주된 이유는 확실히 발생할 로딩을 연기하지 않기 때문입니다. 절대 필요할 수없는 로딩을 연기하기위한 것입니다. (데이터가 변경되었을 때 재 장전을 강제하는데도 좋습니다. 그러나 여기서는 문제가 아닙니다.)

예 : 외부 파일에 저장된 사진을 포함하여 사람에 대한 많은 데이터가 있다고 가정 해 봅시다. 그러나 사진은 사용자가 하위 뷰로 이동하는 경우에만 표시되므로 하위 뷰가 나타날지 확인할 때까지 파일에서 사진을로드하는 이유는 무엇입니까? 붐, 게으른 하중을 사용하십시오.

특정 데이터를로드하고 싶다는 것을 알 때, 정확히로드 할 때는 그다지 중요하지 않을 것입니다.

언제 중요합니까? 글쎄, 그것은 정말로 최적화의 문제입니다. 당신이 가로 질러 달렸다는 말이 있습니다. 당신이하지 않았다면, 이것은 "조기 최적화는 모든 (프로그래밍) 악의 근본입니다."

그러니 두 가지 질문을 스스로에게 물어보십시오.

  1. 데이터 조각이 확실히 필요합니까? 그렇지 않으면 게으른로드 기술을 진행하십시오. 그렇다면 질문 2로 가십시오.

  2. 데이터를로드 할 때 중요합니까? [예를 들어, 그것은 거대하고, 나는 그것을위한 공간을 만들기 위해 다른 것을 언로드 할 때까지 그것을로드하고 싶지 않습니다.] 그렇다면 ... 다시 와서 다시 물어보고 자세한 내용을 제공하십시오.

... 나는 이것이 원래 질문에 대답하지 않는다고 생각하지만, 처음에 잘못된 질문을하는 것처럼 들립니다. 내가 착각하면 사과드립니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top