说到移动设备,这两种方法有什么区别?如果我按下Home键,两者都会被调用。是否有一种情况被呼叫而不是另一种呼叫?
我有一个带有两个实体的简单数据模型.名为Character的父实体和名为Statiscis的子实体.一个角色可以有多个统计信息,每个统计信息只能有一个父级,因此关系是多对一的.

从显示字符详细信息的视图控制器中,我调用新表VC以列出与此字符相关的所有统计信息.在这个控制器上,当我尝试构建fetchedResultsController时,我有一个很好的SIGABRT:"无法为谓词生成SQL(character == currentCharacter)(RHS上的问题)".
当我创建表VC时,我通过prepareForSegue上的两个属性(相同名称)发送managedObjectContext和详细信息VC上显示的字符,因此在表中VC self.currentCharacter承载一个Character管理对象的实例.
#pragma mark - NSFetchedResultsController
- (NSFetchedResultsController *)fetchedResultsController
{
if (_fetchedResultsController != nil)
{
return _fetchedResultsController;
}
NSFetchRequest *fetchRequest = [NSFetchRequest fetchRequestWithEntityName:@"Statistic"];
// Stupid predicate :(
fetchRequest.predicate = [NSPredicate predicateWithFormat:@"character == self.currentCharacter"];
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"statName"
ascending:YES];
NSArray *sortDescriptors = [NSArray arrayWithObject:sortDescriptor];
[fetchRequest setSortDescriptors:sortDescriptors];
NSFetchedResultsController *theFetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest
managedObjectContext:self.managedObjectContext
sectionNameKeyPath:nil
cacheName:nil];
self.fetchedResultsController = theFetchedResultsController;
NSError *error = nil;
// Going to crash
if (![self.fetchedResultsController performFetch:&error])
{
NSLog(@"Core Data error: %@, …Run Code Online (Sandbox Code Playgroud) core-data objective-c nspredicate nsfetchedresultscontroller