CoreData  执行executefetchrequest卡死解决办法

本文介绍了在CoreData执行fetch请求时导致UI卡死的问题及解决办法。通过苹果官方文档了解到,当在后台线程执行fetch请求时,CoreData会自动优化,但跨线程使用NSManagedObjectContext会导致问题。解决策略是在每个线程中创建独立的NSManagedObjectContext实例,关联到同一个NSPersistentStoreCoordinator,以确保线程安全和UI响应性。
摘要由CSDN通过智能技术生成


在大量使用GCD和block以后发现程序会卡死在executefetchrequest执行。

反复测试无果。添加锁也无效。想来想去没发现问题。

容忍了就当人品问题。2天以后实在忍无可忍。

替换performBlock执行块得到如下错误

nsmanagedobjectcontext that was created with a queue

翻英文资料查看。


http://stackoverflow.com/questions/4800889/what-does-apple-mean-when-they-say-that-a-nsmanagedobjectcontext-is-owned-by-the


苹果官方文档资料

http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/CoreData/Articles/cdConcurrency.html#//apple_ref/doc/uid/TP40003385-SW1


看到如下一句话

Fetch in the Background for UI Responsiveness

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值