2014-01-28 1 views
1

:코어 데이터가 NSSet 관계를 직접 설정할 때 역 관계를 채 웁니까? 예를함으로써

나는 엔티티 User 및 기업 Device 있습니다.

User

devices라는 Device 대한 많은 관계에있다.

Device은이 관계의 역함수가 user입니다.


이제 예를 들어 네트워크 서비스는, 그때는 특정 사용자에게 바인딩, NSSet로 수분을, 그래서 수행

NSSet *collectedDevices = [API getSomeDevices]; 
someUser.devices = collectedDevices; 

윌 코어 데이터는 역을 나를 위해 각Device에 대한user관계를 채울? 관계에 대한 세터를 관찰합니까?


배경 :

내가 컬렉션을 설정하기위한 코어 데이터 세터 알고 있어요,하지만 난 그들을 사용하지 않도록합니다. 저는 하드 코딩 된 속성, 관계, 엔티티 설명을 열거하고 일치하는 값을 설정하지 않고 KVC를 사용하여 JSON 표현에서 핵심 데이터 엔티티를 실제로 재구성하고 있습니다.

+0

@Marco 감사합니다. – Geri

+0

NSSet은 NSManagedObjects 집합입니까? – k1th

+0

시도해 보셨습니까? –

답변

4

예, 핵심 데이터는 등록 정보 또는 KVC를 사용하는지 또는 -setPrimitiveValue:forKey:과 같은 핵심 데이터 특정 방법을 사용하는지에 관계없이 역 관계를 설정합니다.

그러나 일 때 은 역수가 약간 변할 수 있습니다. 그것은 어떤 상황에서는 즉시 설정할 수 있고 다른 경우에는 역 루프를 끝내기 위해 기다릴 수도 있습니다. 관련된 모든 오브젝트가 동일한 NSManagedObjectContext에 대해 작성되는 한, 참조 무결성은 코어 데이터에 의해 유지 보수됩니다.

+0

고마워요. 저에게는 충분히 먼 곳입니다. – Geri

+0

더 많은 것. 코어 데이터조차도 간단한 속성 집합을 통해서도 작동한다면'- (void) addDevices : (NSSet *) values; '와 같은 메서드를 만드는 이유는 무엇입니까? 사실이 방법으로 나는이 모든 것에 대해 회의적이었습니다. – Geri

+0

방금 ​​해보기로 설명했습니다. – Geri

관련 문제