Barry Wark'ın dediği gibi, her zaman Çekirdek Verilerin bir orm olmadığını unutmayın. Saf SQL ayrıntıları kullanıcıya maruz kalmaz ve her satır sadece bir nesnedir. Bu arada, bazen "birincil anahtar" a erişmeniz gerekir, örneğin coredata db'yi harici sql veritabanlarıyla senkronize etmeniz gerektiğinde (benim durumumda INSERT'den sonra bir nesnenin durumunu değiştirmek için bir geri çağırma işlevinde buna ihtiyacım vardı) Uzaktan db içinde başarı ile). Bu durumda, kullanabilirsiniz:
gibi bir dize döndürür
objectId=[[[myCoredataObject objectID] URIRepresentation] absoluteString]
: x-CoreData: hiç CoreData kullandığı benzersiz id // 76BA122F-0BF5-4D9D-AE3F-BD321271B004/Nesne/p521 o nesneyi tanımlayın.
o eşsiz kimliğe sahip bir nesne geri almak istiyorsanız:
NSManagedObject *managedObject= [managedObjectContext objectWithID:[persistentStoreCoordinator managedObjectIDForURIRepresentation:[NSURL URLWithString:objectId]]];
Not: Alıcı henüz CoreData Bağlamında kaydedilmedi eğer nesne kimliği geçici değeri o olacak olduğunu unutmayın Nesne kaydedildiğinde değiştirin.
'Çekirdek Veriler bir veritabanı değil' için size bir artı daha verebilirdim. – Abizern
Bir tablo görünümü hücre seçiminden, bir ayrıntı görünümü denetleyicisine aklına gelen geçiş verileriyle bir nesneyi almanız gereken ortak kullanım durumları vardır. Nesnenin kendisini geçebilirsiniz, ancak genellikle VC'de farklı bir bağlam kullanıyorsanız bunu yapmak istemezsiniz. – memmons
@Michael: Kesinlikle. Bunu yapmak için en iyi uygulama nedir? – Noah