2009-09-02 5 views
2

NSManagedObject 개체가 여러보기 컨트롤러에서 사용하려는 데이터로 가득 차 있습니다. 이 객체를 싱글 톤으로 만들고 여러 뷰 컨트롤러에서 사용할 수 있습니까? 아니면 다른 접근법을 사용해야합니까?NSManagedObject를 싱글 톤으로 만들 수 있습니까?

답변

2

싱글 톤 대신 응용 프로그램 대리인에서 응용 프로그램을 시작하고 응용 프로그램을 시작할 때 초기화하는 것이 좋습니다.

보기가 인스턴스화 될 때보기 컨트롤러에서이 속성의 값에 대한 참조를 NSManagedObject으로 설정하십시오.

+0

좋아요에서 "변경 관리"장을 참조 알고 있으면 유용 먹으 렴하지만, 여러 컨트롤러에서 nsmanagedobject 데이터에 액세스하려면 어떻게해야합니까? – Ton

+1

응용 프로그램 대리인에서 인스턴스화 한 단일 인스턴스를 가리키는 NSManagedObject 참조가 컨트롤러에 있으면 일반적으로 그러 하듯이이 인스턴스에서 데이터에 액세스 할 수 있어야합니다. http://developer.apple.com/iphone/library/documentation/Cocoa/Conceptual/ObjectiveC/Articles/ocProperties.html –

+1

에서 Cocoa 문서를 살펴보십시오. 코어 데이터 튜토리얼, 뷰 컨트롤러 설정 과정을 안내합니다. http://developer.apple.com/IPhone/library/documentation/DataManagement/Conceptual/iPhoneCoreData01/Articles/06_Deleting.html#//apple_ref/doc/uid/TP40008305-CH108-SW1 –

2

이미 NSManagedObjectContext를 전달하고 있습니다. 이를 사용하여 언제든지 원하는 데이터를 가져올 수 있습니다.

코어 데이터가 어떻게 반응하여 싱글 톤 인스턴스를 만드는 지 알 수 없습니다. NSmanagedObject는 NSObject가 수행하는 초기화와 동일한 메소드를 사용하지 않습니다.

-awakeFromInsert 및 -awakeFromFetch를 사용합니다. 그래서 당신은 이미 문제가 있습니다.

Marcus Zarra (Core Data Guru)의 article을 참조하십시오.

간단히 말해, 새로운 가져 오기를 수행하여 필요한 데이터를 얻습니다. 거기서 싱글 톤을 처리 할 필요가 없습니다.

+0

내가해야 할 일은 여러 개의 컨트롤러에서 사용하려는 한 세트의 데이터입니다. 또한 한 컨트롤러가 객체의 데이터를 변경할 때 컨트롤러보기를 업데이트해야합니다. – Ton

+0

모델을 변경하면 알림을 게시하십시오. 그런 다음보기 컨트롤러가이 알림을 수신 대기하고 필요한 경우 데이터를 다시 가져옵니다. –

+1

아쉽게도 해당 링크는 더 이상 유효하지 않습니다. – ThomasW

0

데이터를 액세스해야하는 모든 엔티티에 전달하는 데 문제가있는 경우 왜 싱글 톤으로 만들 것인지에 따라 다르지만, 어쨌든 싱글 톤을 사용하는 것은 좋은 해결책이 아닙니다. 일반적으로 어떤 문제를 해결하기보다는 더 많은 문제를 야기합니다. 같은 개체에 여러 편집에 대해 걱정하는 경우

, 코어 데이터가 처리하는 메커니즘이의 "코어 데이터 프로그래밍 가이드"

+0

실제로 내가 여러 컨트롤러에서 그 비난에 동일한 데이터를 사용하고 stackoverflow에 대한 다른 질문에, 그들은 상황의 그 종류에 대한 싱글 톤을 사용해야한다고 대답하기 때문에 그것을 그것을 싱글 톤하고 싶습니다? 개체에 대한 참조를 전달하는 대신 – Ton

관련 문제