核心数据库中的Z_PK列

是否可以从Core Data创build的Z_PK列中获取数字? 如果是这样,你是否会像获取在模型中手动创build的属性一样获取这个列?

你可以使用sqlite直接访问由CoreData创build的列。

但是,您不应该依赖于Z_PK或任何列保持一致。 该模式可能会改变(和有)之间的版本。 苹果在WWDCvideo中已经提到了这一点。

z_pk不是可以像其他属性一样获取的属性。 你可以做的是从你的实体的managedObjectID提取z_pk值

managedObjectID可以使用[self objectID] 。 对于这个例子,我们采取这一个:

  <x-coredata://03C5C895-3245-4D0F-8B6B-7758582AE16B/<your-Entity>/p5> 

最后的p5是z_pk。 (对于这个商店,对于这个实体,在这个时候,它可以改变)

不知道你需要什么z_pk,也不知道什么格式。 让我们把managedObjectID转换成一个string:

  NSString *aString = [[[self objectID] URIRepresentation] absoluteString]; 

从string中提取5

  NSArray *theComponents = [aString componentsSeparatedByString:@"/p"]; NSInteger theZpk = [[theComponents lastObject] intValue]; 

现在,您将z_pk作为int来处理,并且可以按照您的喜好进行处理。

ios从sqlite coredata中读取z_pk

看到这个链接了解更多。 据我所知,我们无法从核心数据中获取Z-PK。 但是你可以通过保存核心数据文件如sqlite文件来知道它,你可以通过查询来检查它。