CoreData: error: Serious application error. An exception was caught from the delegate of NSFetchedRe

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CoreData: error: Serious application error. An exception was caught from the delegate of NSFetchedRe相关的知识,希望对你有一定的参考价值。

看看xcode的具体的描述:
CoreData: error: Serious application error. An exception was caught from the delegate of NSFetchedResultsController during a call to -controllerDidChangeContent:. UITableView internal bug: unable to generate a new section map with old section count: 1 and new section count: 0 with userInfo (null)
 
下面看下的我的关键代码:
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
   
    if (self.serviceItems.count > 0) {
        return 1;
    } else {
        return 0;
    }
}
 
以上代码当数据源数组大于0的时候section返回1,否则返回0.看似没问题,一开始我的self.serviceItems.count > 0,但是self.serviceItems是可变的,当self.serviceItems变化的时候我会刷新数据源(tableView.reloadData)。所以我进行删除操作的时候self.serviceItems.count可能会等于0,当self.serviceItems.count等于0的时候就数据源方法就返回0了,UITableView internal bug: unable to generate a new section map with old section count: 1 and new section count: 0 with userInfo (null),意思是无法用新生成的section=0替换原来的section=1,这是UITableView本身是bug(UITableView internal bug:...)所以改下代码,变为
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
    return 1;
}
始终返回1即可。

以上是关于CoreData: error: Serious application error. An exception was caught from the delegate of NSFetchedRe的主要内容,如果未能解决你的问题,请参考以下文章

Sass-@extend

02-pandas数据Serious

sparksql读取hive数据报错:java.lang.RuntimeException: serious problem

SwiftUI+CoreData项目出现The operation couldn’t be completed(GenericObjCError error 0)错误的解决

如何重置 CoreData 应用程序

在coredata中保存大量对象