코코아를 처음 접하는 많은 개발자들과 마찬가지로, 나는 위임자와 컨트롤러 개념에 어려움을 겪고 있습니다. 나는 기초를 얻는다. 그러나 1 개의 물건은 나를 괴롭힌다. 실질적으로 모든 설명은 컨트롤러와 대리자가 같은 대상인 경향이있는 "보통"또는 "단순한 경우"(예제로 제공하는 유일한 경우)라고 말합니다. 그렇다면 동일한 인터페이스 개체에 대해 컨트롤러와 대리인을 언제 분리해야합니까? 당신이 공유하고 싶은 경우 대리자가 필요에 대해 별도의 클래스를 사용별도의 대표와 컨트롤러
1
A
답변
2
두 가지 일반적인 경우는 같은 위임 메시지에 대한 응답으로 관련이없는 작업을 수행 할 필요가
- , 또는
- 입니다 여러 뷰 또는 컨트롤러 중에서 대리인의 논리.
첫 번째 상황의 예는 서로 관련되지 않은 두 개의 테이블이있는 페이지입니다. 각 UITableView
에는 자체 대리인이 필요하므로 컨트롤러를 대리인으로 사용하려면 각 대리자 메서드에서 추한 if
문이 필요합니다. 이 경우 별도의 위임자를 정의하고 사용하는 것이 좋습니다.
두 번째 상황의 예는 유사한 구조의 테이블에서 DB 데이터를 보여주는 비슷한 페이지 그룹입니다. 페이지 자체는 충분히 유사하지 않으므로 컨트롤러를 전체적으로 재사용 할 수는 없습니다. 대리자를 컨트롤러에 배치하도록 선택한 경우 테이블 뷰의 데이터 소스 뒤에있는 대부분의 논리는 동일합니다. 코드를 공유 대리자 구현에 넣고 각 컨트롤러에서이 컨트롤러와 연결된 테이블에 특정한 구성 매개 변수를 사용하여 대리자를 인스턴스화하게 할 수 있습니다. 당신의 대리인으로 컨트롤러 이외의 다른 개체를 사용하는 경우
한 주 염두에 두어야합니다 : 뷰에만 참조를 할당/약한를 유지하기 때문에 컨트롤러가 대리자에 대한 강한 참조를 보관/유지한다. 자세한 내용은 property "assign" and "retain" for delegate을 참조하십시오.
관련 문제
- 1. 액션 대표와 일반 매개 변수
- 2. 대표와 서브 클래 싱과 IBActions
- 3. 별도의 컨트롤러 동작이있는 Mvc3 마법사
- 4. 별도의 영역에도 컨트롤러 이름이 고유해야합니까?
- 5. 젠드 프레임 워크 : 별도의 디렉토리에있는 컨트롤러
- 6. 별도의 컨트롤러 (ASP.NET MVC3)에서 호출 가져옵니다
- 7. 별도의 어셈블리와 Castle Windsor의 ASP.NET MVC 컨트롤러
- 8. 탭 바 컨트롤러 이전의 UINavigation 컨트롤러
- 9. 코드 점화 기 : 별도의 컨트롤러 또는 하나를 넣으시겠습니까?
- 10. 별도의 도우미 클래스에서 컨트롤러 외부의 HttpContext 세션에 액세스하는 모범 사례
- 11. 는 Kohana 별도의 관리를위한 라우팅 및 컨트롤러 정의를 만들기 3.2
- 12. 별도의 서버에 컨트롤러 및 테스트 에이전트가 작동하지 않습니다.
- 13. 여러 대의 컨트롤러 대 하나의 컨트롤러
- 14. UIToolBar 단일보기 컨트롤러 대 다중보기 컨트롤러
- 15. 별도의 프로젝트를위한 별도의 리포지토리가 필요합니까?
- 16. 단일 컨트롤러
- 17. slf4j 별도의 파일에 로그인
- 18. MVC 컨트롤러
- 19. 별도의 위임 클래스
- 20. 컨트롤러 내 컨트롤러 호출
- 21. IPhone 복수 컨트롤러 컨트롤러
- 22. 컨트롤러 체인보기
- 23. 컨트롤러
- 24. 컨트롤러
- 25. 컨트롤러
- 26. 컨트롤러
- 27. 컨트롤러
- 28. 클래스 편집보기 컨트롤러
- 29. 별도의 레일 도우미 메서드
- 30. 별도의 JVM이 별도의 OS 프로세스를 의미하는 경우