最近写程序是遇到了一种情况,对coredata 操作时,有一定几率crash,crash时无任何说明,断点调试后发现,fetch出的对象的属性竟然和数据库中的不同,不知道什么情况下导致了context的一致性被破坏了,查了好久也没有找出真正原因,但是找到了解决方法:在每次复杂的逻辑前加一句:
[[DBManager sharedManager].managedObjectContext reset]; ,让context丢弃cache中的数据,完美地解决了问题。