iOS核心数据

时间:2014-08-11 15:36:44

标签: ios objective-c core-data

全部,我遇到Core Data问题。

我有一个查询与jobId

匹配的所有数据的方法
- (JobSummary*)summaryForJobId:(NSInteger)jobId {
    NSFetchRequest* request = [[NSFetchRequest alloc] initWithEntityName:[JobSummary entityName]];
    request.predicate = [NSPredicate predicateWithFormat:@"jobId = %D", jobId];

    JobSummary* summary = [[self.context executeFetchRequest:request error:nil] lastObject];

    NSLog(@"DB Summary: %@", summary);

    [request setReturnsObjectsAsFaults:NO];

    return summary;
}

当被呼叫并且我退出时,它工作得很完美,但是当我从一个单独的视图控制器中调用它时是这样的;

JobSummary *retrievedDictionary = [[FSScheduleDatabaseTransaction new] summaryForJobId:jobid];

当我退出retrieveDictionary时,它会吐出这个;

<JobSummary: 0x12de24a0> (entity: JobSummary; id: 0xb3c19b0 <x-coredata://7E9F6C6E-B4A0-4450-8905-184C6C8FB60D/JobSummary/p169> ; data: <fault>)

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

正确地为您提供日志。当您尝试打印ManagedObject时,您只会在日志中看到fault

  

fault是一个占位符对象,表示尚未完全实现的托管对象,或者是表示关系的集合对象:

     
      
  • 托管对象错误是相应类的实例,但其持久变量尚未初始化。

  •   
  • 关系错误是表示关系的集合类的子类。

  •   

因此,简而言之,除非您尝试访问这些属性,否则CoreData不会填充属性值。它将有一个fault。只是尝试记录ManagedObject,而不先前访问其属性,只会显示fault