Chr*_*oph 18 iphone core-data nsfetchedresultscontroller
尝试添加记录时出现以下错误:
严重的应用错误.在Core Data更改处理期间捕获到异常.这通常是NSManagedObjectContextObjectsDidChangeNotification的观察者中的错误.userInfo(null)索引0无效
就是这样.我将断点放入我已实现的所有fetchedResultsContainer委托方法中,但没有任何中断.
我追查到:
NSFetchedResultsController *aFetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:self.managedObjectContext sectionNameKeyPath:@"titleFirstLetter" cacheName:@"Root"];
Run Code Online (Sandbox Code Playgroud)
"sectionNameKeyPath"是问题所在."titleFirstLetter"是一个瞬态属性,我在NSManagedObject子类中创建了一个getter.
这是吸气剂:
-(NSString *)titleFirstLetter
{
[self willAccessValueForKey:@"titleFirstLetter"];
NSString *aString = [[self valueForKey:@"title"] uppercaseString];
NSString *stringToReturn = [aString substringWithRange:[aString rangeOfComposedCharacterSequenceAtIndex:0]];
[self didAccessValueForKey:@"titleFirstLetter"];
return stringToReturn;
}
Run Code Online (Sandbox Code Playgroud)
当我将sectionNameKeyPath更改为nil时,它可以工作,但显然不是我想要的.当我已经为我的模型填写了标题时它也有效,因此titleFirstLetter不会返回nil,尽管这似乎不是问题.如果我将字符串设为任意内容,如果它为零,它仍然会崩溃.
知道这里有什么?
更新:如果我使用sectionNameKeyPath中的标题而不是transient属性,它不会崩溃,但显然会将每个项目放在自己的部分中.所以它与瞬态属性有某种关系......
UPDATE2:使用持久属性而不是瞬态的一些初步黑客,并没有其他更改,似乎工作得很好,所以这看起来是一个错误.我有一个错误报告打开:#8553064
更新3:好吧,抓一点.使用持久属性没有任何区别.我现在有点蠢蠢欲动.
谢谢!
Chr*_*oph 12
好吧,这可能是部分(或完全)用户错误.问题是,在我添加新项目的视图中,我已经放入[self.tableView reloadData]了viewWillAppear方法.评论说没有更新表格单元格,但阻止了崩溃.
然后我继续前往reloadRowsAtIndexPaths:withRowAnimation:表视图,手动重新加载需要它的几个单元格.
我很高兴终于结束了!
| 归档时间: |
|
| 查看次数: |
14595 次 |
| 最近记录: |