나는 지금 내 벨트 아래에 몇 가지 애플 리케이션을 가지고 있지만, 난 여전히 비교적 새로운거야. 내가 아는 사람이라면 모범 사례 조언이나 심지어 인식하지 못했던 코코아 터치 프레임 워크의 기능을 찾고 있습니다.iPhone 응용 프로그램에서 어떻게 도메인 객체를 처리합니까?
첫 번째 응용 프로그램에서 응용 프로그램 대리인에 도메인 개체를 만든 다음 필요에 따라이를 내 ViewController에 전달했습니다. 예를 들어 App Delegate에서 메모리에서 사용자의 계정을로드하려고 시도하고 거기에 있었다면 initWithCoder를 사용하여 Account 객체를 만들 수 있습니다. 그런 다음 Account 개체가 필요한 ViewController를 인스턴스화 할 때마다 자체 계정 속성이있는 ViewController로 전달합니다.
그러나 내 애플 리케이션에 코드가 너무 많아서 내 ApplicationDelegate가 내 도메인 객체를 관리하도록 결정했습니다. ViewController가 필요할 때마다 다음과 같이 ApplicationDelegate에 질의합니다.
MyAppDelegate* myAppDelegate = [UIApplication sharedApplication].delegate;
ADomainObject* anObject = myAppDelegate.anObject;
이것은 미친 짓입니까? 좋은 생각입니까? 나는 내 자신으로 그것을 완전히 만들었으므로 나는 더 나은 것이 있는지 궁금해하고있다. 나는 dev에 익숙하지 않기 때문에 일을하는 가장 좋은 방법을 배우려고 노력하고 있습니다 ...
흥미롭지 만 모든 도메인 개체가 싱글 톤에 적합하지는 않습니다. 예를 들어, Domain Objects 모음입니다. 이 경우에도 Collection 클래스에 대한 Category를 만들 수 있다고 생각합니까? "단일 문서"응용 프로그램이 의미하는 바를 명확히 생각해보십시오. – bpapa
컬렉션에 대한 접근자를 해당 도메인 객체 클래스의 클래스 메서드로 구현할 수 있습니다. 그들이 카테고리에 살고 있는지 여부는 당신에게 달려 있습니다. 바탕 화면에서 여러 파일에 대해 여러 개의 창을 가질 수 있습니다. 이것은 iPhone에는 적용되지 않지만 NSDocument에 관심있는 아이디어가 있습니다. – Alex
Appkit 기반의 Cocoa 응용 프로그램은 "문서 기반"또는 "단일 창"(일명 "단일 문서") 응용 프로그램 인 경우가 많으므로 한 번에 하나의 문서 만 열거 나 여러 문서를 열 수 있습니다 . Alex가 말하는 것은 iPhone 앱이 후자와 더 비슷하다는 것입니다. – erikprice