我有以下代码从核心数据中获取一组“项目”(每个“项目”都有一些属性,例如“标题”、“时间”、“结束时间”、“付款”等):
NSFetchRequest *request = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Project" inManagedObjectContext:__managedObjectContext];
[request setEntity:entity];
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"endTime" ascending:NO];
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil];
[request setSortDescriptors:sortDescriptors];
NSError *error = nil;
NSMutableArray *mutableFetchResults = [[__managedObjectContext executeFetchRequest:request error:&error] mutableCopy];
if (mutableFetchResults == nil) {
// Handle the error.
}
[self setEventsArray:mutableFetchResults];
但是只返回项目而不返回它们的属性:<NSManagedObject: 0x154010> (entity: Project; id: 0x1dad70 <x-coredata://85BD9DF1-B41B-4234-8397-C2F568D0CC7A/Project/p3> ; data: <fault>
我是否必须单独获取属性或者我错过了什么?谢谢。
最佳答案
看到抓取错误是正常的。故障是替代对象或“幽灵”对象,它们表示托管对象在对象图中的位置,而无需加载一堆可能永远不需要的属性数据。
在您尝试访问特定托管对象的属性之一之前,您不会看到属性日志。
新创建的对象或对现有对象属性的更改将不会保存到磁盘,直到您在托管对象上下文上调用保存。
关于ios - 在 Xcode 中,NSFetchRequest 只返回对象,而不是它们的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7930048/