核心数据库中的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文件来知道它,你可以通过查询来检查它。