응용 프로그램 내에서 동일한 NSManagedObject
을 공유해야하는 다른 UIViewController
가질 수 있습니다. 나는 다음과 같이 일반적으로 해요 :NSManagedObjects UIViewControllers 전달할 수있는 요리법
@interface CustomController : UIViewController
@property (nonatomic, retain) ProductNSManagedObject* productManaged;
@end
을 그럼 난 CustomController
을 istantiate 때 나는 다음처럼 주입 :
customController.productManaged = ....
, CustomController
그것을 해제 할 책임이있다.
이 접근법은 잘 작동하지만 올바른지 여부는 알 수 없지만 컨트롤러에 해당 객체가 필요하지만 해당 객체가있는 컨트롤러의 직접적인 하위 노드가 아닌 경우 어떻게해야합니까? 예 :
MainController -> ChildController -> SubChildController -> ....
여기에서 MainController
에는 관리 객체가 있습니다.
중간 속성을 많이 만들어야하나요 아니면 신선한 NSFetchRequest
또는 다른 것을 실행해야합니까?
동일한 측면이 NSManagedObjectContext
에 적용될 수 있습니다. 주위를 검색 한 결과 컨텍스트가있는 응용 프로그램 위임자 (있을 경우)에서 그 컨텍스트를 가져올 수 있다는 것을 알았습니다. 그러나 마커스 자라 (Marcus Zarra)가 passing-around-a-nsmanagedobjectcontext-on-the-iphone에 쓴 것처럼이 접근법에는 유연성이 부족합니다.
제안 사항? 미리 감사드립니다.
답장을 보내 주셔서 감사 드리며 귀하의 제안에 +1하십시오. 하지만 당신이 의미하는 것은 무엇입니까? *이 개별 객체는 모든 공유 객체에 대한 참조를 보유 할 수 있으며 객체를 빌드 할 객체에 공급할 수 있습니다. 따라서 일반 객체가 다른 객체에 대한 종속성으로 전달하기 위해 참조를 유지하지 않아야합니다. . *? 샘플 프로젝트를 만들 때 알려주십시오. –
방금 해답을 읽었습니다. 유용합니다. 접근 방식은 매우 깨끗한 것 같지만 이해할 수없는 것은 응용 프로그램 전체에서 * Factory * factory = [[Factory alloc] init];과 istantied되는 객체 * factory *를 참조하는 방법입니다. 다시 감사합니다. –
편집을 참조하십시오, 샘플 프로젝트는 분명히해야합니다. – zoul