我正在使用父/子上下文来处理核心数据。在后台线程和上下文中添加对象。工作正常。对象也会在后台上下文中删除并保存在子/父对象上。我可以看到在核心数据调试中删除对象并成功提交。之后我告诉nsfetchresultcontroller(设置为nil并重新初始化和删除缓存)来获取对象。删除对象时,对象仍然存在。
CoreData: sql: COMMIT
CoreData: sql: BEGIN EXCLUSIVE
CoreData: sql: INSERT INTO ZTLOG(Z_PK, Z_ENT, Z_OPT, ZFXY, ZFXYZ) VALUES(?, ?, ?, ?, ?)
CoreData: sql: COMMIT
删除
CoreData: sql: BEGIN EXCLUSIVE
CoreData: sql: DELETE FROM ZTLOG WHERE Z_PK = ? AND Z_OPT = ?
CoreData: sql: COMMIT
nsfetchresultcontroller
CoreData: annotation: fetch using NSSQLiteStatement <0x68a2760> on entity 'TLog' with sql text 'SELECT 0, t0.Z_PK, t0.Z_OPT, t0.ZXY, t0.ZXYZ WHERE t0.Z_PK = ? ' returned 0 rows
CoreData: annotation: total fetch execution time: 0.0080s for 0 rows.
CoreData: annotation: fault fulfilled from database for : 0x687ab40 <x-coredata://BCA24D29-F9D3-4068-8122-E7A43C116D8A/TLog/p2>
所以即使我设置了fetchcontroller&amp;委托nil并重新开始。但仍然fetchresult控制器fetchedobjects删除了对象。 最后一个日志行看起来很可疑。我删除了所有对象。为什么它会完成这个错误?
任何人都知道吗?答案 0 :(得分:0)
再一次是线程问题。核心数据对象不是线程安全的!