我可能无法使用Core Data进行操作,如果是这样,请告诉我。
我有一个ManagedObjectContext,我通过addPersistentStoreWithType添加它们来引入sqlite数据库。 。
所以我会添加一些数据库 - 比如介于1和5之间,然后我对数据库中的数据执行提取。很高兴我不必说出我正在搜索的内容 - 结果只是回来并且它们被合并在一起。
但是,如果我想要知道每个结果出来的商店怎么办?这甚至可能吗?我是否也想“老派”,就像我想知道结果被发现的“文件”一样?
欢迎提供帮助/建议。
以下是一些代码:
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"PMBEntity"
inManagedObjectContext:context];
[fetchRequest setEntity:entity];
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc]
initWithKey:@"Name" ascending:YES];
[fetchRequest setSortDescriptors:[NSArray arrayWithObject:sortDescriptor]];
[fetchRequest setReturnsDistinctResults:YES];
[sortDescriptor release];
NSArray *fetchedObjects = [context executeFetchRequest:fetchRequest error:&error];
参见上面我有一个PMBEntity,它是我通过XCode创建的核心数据NSManagedObjectModel。如您所知,其中一个(中)字段是“名称”。在这里,我正在搜索所有唯一的名称并按名称排序。
返回给我的是这些PMBEntity对象的NSArray。
答案 0 :(得分:2)
您需要托管对象的persistentStore
属性的objectID
属性。这将为您提供持有托管对象的持久性存储的URL。
但是,仅在将对象至少保存一次到持久性存储之后。在此之前,它有一个临时UUID,不指向商店。我不确定它是如何受到新进口商店的影响。读入时可能会获得永久ID,但我还没有测试过。
答案 1 :(得分:0)
好吧,当你获取时,你有NSManagedObject实例作为结果。 NSManagedObject实例具有对其NSManagedObjectContext的引用。 NSManagedObjectContext具有对其persistentStoreCoordinator的引用。 NSPersistentStoreCoordinator实例具有对持久存储和NSManagedObjectModel的引用。