
let fetchRequest = NSFetchRequest(entityname: "Order") fetchRequest.includesPendingChanges = false fetchRequest.sortDescriptors = [ NSSortDescriptor(key: "status",ascending: false),NSSortDescriptor(key: "date",ascending: false)] self.fetchedResultsController = NSFetchedResultsController( fetchRequest: fetchRequest,managedobjectContext: DataStoreManager.sharedInstance.mainContext,sectionnameKeyPath: "section",cachename: nil) do { try self.fetchedResultsController.performFetch() } catch let error as NSError { print(error) } 问题是即使将includesPendingChanges设置为false,它仍然会在每次创建新对象时调用控制器(控制器:NSFetchedResultsController,dIDChangeObject anObject:AnyObject,atIndexPath indexPath:NSIndexPath ?,forChangeType类型:NSFetchedResultsChangeType,newIndexPath:NSIndexPath?)上下文(不保存).
还有什么我应该寻找以避免这种情况吗?
解决方法 建议的方法是使用子上下文.父项应该是获取结果控制器中使用的主线程管理对象上下文.如果保存,更改会立即“推送”到主上下文,即获取的结果控制器. (保存主要上下文以持久存储到持久性存储.)
如果您不想保存,只需丢弃子上下文而不保存.获取的结果控制器永远不会知道它.
总结以上是内存溢出为你收集整理的ios – NSFetchedResultsController总是包含临时对象全部内容,希望文章能够帮你解决ios – NSFetchedResultsController总是包含临时对象所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)