2014-11-07 23 views
10

Swift'de bir uygulama geliştiriyorum ve son zamanlarda Çekirdek Verileri kullanmaya başladım. Benim varlığımın hangi özelliğinin birincil anahtarım olacağını tanımlamalıyım. Örneğin:iOS - Temel Veri seti özniteliği birincil anahtarı

ben sınıfın niteliklerini olan bir varlık vardır:

  • id
  • adı
  • yaş

ben "id" ihtiyaç nitelik birincil olduğunu tuşuna basın.

Objective-C'de aynı olabilir, sadece nasıl tanımlanacağını bilmeniz gerekir.

cevap

16

Her NSManagedObject kendine özgü anahtar hangi onun objectID özelliğinde kullanılabilir inşa etti: Bir NSPredicate kullanın id ile varlığınızı almak istediğinizde.

Bu kimlik, kurumları ilişkilerini ilişkilendirmek için dahili olarak kullanılır. SQL'de yaptığınız gibi birincil anahtar olarak kendi kimliğinizi korumanıza gerek yoktur.

Kimliği her zaman NSManagedObject.objectID olarak alabilirsiniz. onun kimliğine göre bir nesne getiriliyor

Swift içinde

+0

neyi yaklaşık NSMananagedObjectContext.objectWithId(...) kullanılarak yönetilen nesne bağlamı tarafından doğrudan yapılabilir ?? Özellik adını göremiyorum: objectID – user3804063

2

Neden birincil anahtarınız olmak için kimliğe ihtiyacınız var, SQL değil ve birincil anahtar yok (çekirdek verilerin arkasında SQL kullanmıyorsanız SQL ve birincil anahtar kullanmazsınız). Attribute kimliğinizi userId veya entityId olarak yeniden adlandırın.

[NSPredicate predicateWithFormat:@"(entityId == %d)", entityId] 
İlgili konular