req = [[NSFetchRequest alloc] init];
// entity
ent = [NSEntityDescription entityForName:@"Medicine" inManagedObjectContext:context];
[req setEntity:ent];
// predicate
pred = [NSPredicate predicateWithFormat:@"date > %@",referenceDate];
[req setPredicate:pred];
// sort descriptor
sorter = [NSSortDescriptor sortDescriptorWithKey:@"date" ascending:YES];
[req setSortDescriptors:[NSArray arrayWithObjects:sorter, nil]];
NSFetchedResultsController *frc = [[NSFetchedResultsController alloc] initWithFetchRequest:req managedObjectContext:context sectionNameKeyPath:@"date" cacheName:@"asdsad"];
NSLog(@"%@",[frc fetchedObjects]); // returns (null)
//NSArray *frc = [context executeFetchRequest:req error:nil];
//NSLog(@"%@",frc); // returns 4 objects
正如你在我的代码中看到的那样,我最后有两个不同的位。
第一个代码(未注释)在NSLog中返回null。
第二个代码(注释)从上下文返回一个包含4个对象的数组。
出现这种情况的原因是什么?我做错了吗?
答案 0 :(得分:6)
因为你还需要做一件事:performFetch。
以下是文档中的详细信息:
performFetch: 执行接收者的获取请求。
讨论 执行此方法后,可以使用属性fetchedObjects 访问接收者的获取对象。