2011-01-21 2 views
1

NSManagedObjectID 문서 상태 :공간과 시간에 걸쳐 NSManagedObject objectID가 CFUUID와 고유합니까?

NSManagedObjectID 객체는 관리 객체의 소형 범용 식별자입니다. 이것은 핵심 데이터 프레임 워크에서 고유성을위한 기초를 형성합니다. 관리 대상 개체 ID는 단일 응용 프로그램의 관리 대상 개체 컨텍스트와 여러 응용 프로그램 (분산 시스템 에서처럼)간에 동일한 관리되는 개체를 고유하게 식별합니다. 내 머리에

번역 : "두 NSManagedObjectIDs 이제까지 내 응용 프로그램의 모든 인스턴스의 집합에서 동일한 것을 아마 방법은 없습니다."

CFUUID 문서 상태 :

의 UUID는 ... 128 비트 고유합니다 값입니다. UUID는 그것이 이었다되는 컴퓨터의 고유 값을 결합함으로써 시공간 둘다 고유되어 생성 대개 이더넷 하드웨어 어드레스 10 월 보낸 100 나노초 간격의 수를 나타내는 값 15, 1582 00:00:00 내 머리에

번역 : "두 CFUUIDs 이제까지 내 응용 프로그램의 모든 인스턴스의 집합에서 동일한 것을 확실히 방법은 없습니다."

NSManagedObjectID가 "범용 식별자"로 설명되어 있다는 사실 때문에 CFUUID와 동일한 고유성을 제공한다는 사실을 거의 확신 할 수 있습니다. 반면 "고유 한 시공간적"은 의심의 여지가 없습니다. 내 핵심 데이터 경험이있는 사람이라면 누구든지 내 생각을 확인하거나 거부 할 수 있습니까?

+0

질문 제목이 굉장하다고 말하고 싶습니다. – jjxtra

답변

2

고유성 너머에는 개체 ID가 변경되는 경우가 하나 있는데, 개체를 디스크에 저장하기 전에 개체 ID를 쿼리하면됩니다. 저장 후 다른 ID를 갖습니다. 이 시점을 지나면 ID는 변경되지 않습니다. 나는 이것이 일어나고 있는지를 알기 전까지 약간의 혼란을 야기했기 때문에 이것을 지적하고 싶었다.

NSManagedObjectID를 생성하는 데 사용 된 해싱에 대해서는 언급 할 수 없지만 생성 된 ID를 기반으로 다른 NSManagedObject와 일치하는 확률이 매우 작아 보이는 것처럼 보입니다.

+0

직접 문서를 읽는 동안 임시 ID에 대해 약간주의해야합니다. 좋은 작은 걸림돌이었을 수 있습니다. 의견을 보내 주셔서 감사합니다. –