2013-07-23 55 views
1

我正在使用父/子上下文的核心数据。对象被添加到后台线程和上下文中。这工作正常。对象也会在后台上下文中删除并保存在子/父级上。我可以看到在核心数据调试中,对象被删除并成功提交。之后,我告诉nsfetchresultcontroller(设置为零,重新初始化和删除缓存)来获取对象。即使对象被删除,对象仍然存在。nsfetchresultcontroller删除后返回行

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 &代表到零,并重新初始化。但仍然fetchresult控制器fetchedobjects删除了该对象。 最后一个日志行看起来很可疑。我删除了所有对象。为什么它履行了过错?

任何人的任何想法?

回答

0

再一次是线程问题。核心数据对象不是线程安全的!