ios – NSFetchedResultsController总是包含临时对象

ios – NSFetchedResultsController总是包含临时对象,第1张

概述我有一个NSFetchedResultsController我设置如下: let fetchRequest = NSFetchRequest(entityName: "Order") fetchRequest.includesPendingChanges = false fetchRequest.sortDescriptors = [ NSS 我有一个NSFetchedResultsController我设置如下:

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总是包含临时对象所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1062186.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-25
下一篇2022-05-25

发表评论

登录后才能评论

评论列表(0条)

    保存