저는 코코아와 iPhone 프로그래밍에 새로운 경험이 있습니다.코코아 터치 앱 아키텍처 - MVC 컨트롤러?
- 텍스트 필드와 뷰가 연결 버튼으로 사용자 이름을
- 뷰를 수집 : 나는이 간단한 응용 프로그램을 구현하기 위해 엑스 코드 유틸리티 응용 프로그램을 템플릿을 사용하고
을 사용하여 사용자 이름을 사용하여 원격 사이트에 대한 연결을 시작하여 HTTP를 통해 일부 데이터를 가져옵니다. 데이터는 화면에 텍스트 문자열로 표시됩니다.
이것은 내 의 MVC 패턴으로보기을 나타냅니다.
사용자 이름을 저장하고 내 MODEL을 나타내는 모든 연결 작업을 수행하고 AppDelegate에서이를 인스턴스화하는 간단한 클래스를 만들었습니다. 여기
정말 간단한 스케치 :
내가 파단 (사용자 이름) 또는 내가 중첩 된 부모 뷰에서 작업을 트리거 할 수있는 방법으로 깊은 중첩 된 데이터를 얻을 수있는 방법을 나에게 정말 명확하지 않다 (연결 단추).
내 질문은 :
이 아키텍처를 구현하는 가장 좋은/깨끗한 방법은 무엇입니까?
컨트롤러은 어떻게 구현합니까? 의견에 따라 내 대답을 업데이트 사전에 어떤 도움
감사합니다,
Paull
IBOutlets 및 IBActions를 사용하여 UI 요소를 바로 가기 뷰 컨트롤러에 연결할 수 있습니다. 상위 컨테이너 데이터를 내 모델 대리인 포함 된 내 응용 대리인까지 전파하는 방법을 이해하지 못합니다 ... – Paull
상태 또는 데이터를 유지하는 응용 프로그램 대리인이 작동하지만 좋은 아키텍처가 아니므로 항상 사용할 수 있습니다 ([NSApplication 델리게이트])이 전역 객체에 대한 주석을 작성하는 코드로 쉽게 연결됩니다. 재사용 할 수 없다. 소규모 응용 프로그램에서는 괜찮을 수 있습니다. – monowerker
답변 해 주셔서 감사합니다! 내 간단한 응용 프로그램의 경우 두 서브 뷰 (텍스트 필드 및 연결 단추 + 레이블)에 모두 도달 할 수 있도록 루트 컨트롤러 내부에 모델 인스턴스를 두는 것이 좋습니다. 당신이 제안한대로 네트워킹도 정리할 것입니다. 정말 중첩 된보기가있는 더 복잡한 아키텍처에 어떻게 대처할 수 있을지 궁금합니다. 앱 전체에서 액세스 할 수 있도록 싱글 톤 모델이 필요합니까? (이 방법이 맘에 들지 않습니다.) 아니면 어쩌면 상위 뷰 메소드를 호출하거나 이벤트 알림을 보내는 데 데이터를 전파해야합니까? – Paull