我又在努力解决一个核心数据任务,它总是随机地在我身上失败
下面的代码正在构建我的初始数据库,这是应用程序正常工作所必需的
第一个
我的问题是:起初我甚至没有注意到有一个问题,因为一切都工作正常,所有的对象得到保存,因为他们应该是,但确实有一个,因为:我随机得到这样的错误:
error= Error Domain=NSCocoaErrorDomain Code=134030 "An error occurred while saving." UserInfo={NSAffectedObjectsErrorKey=(
"<AppName.SinglePerson: 0x60000104e7b0> (entity: SinglePerson; id: 0x600003337ce0 <x-coredata:///SinglePerson/t3081F988-C5D1-4532-AD81-46F3B4B10215139>; data: {\n id = 138;\n name = testname;\n age = \"25\";\n })"
我多次收到此错误(20 x-150 x),只有一个ID,在本例中为138,但每次都是不同的ID...我调查了这种情况几天,我就是无法理解这个问题..我现在发现的是:该方法应该插入150行,如果发生此错误,则不只是计数为149,而是计数为87或127,或者任何对象在上下文中卡住的情况,并且在第一个错误之后的每次执行都失败并抛出(相同的)错误。
我试图获取这些新的写入数据后,我直接插入他们,我总是得到相同的(错误的)计数150..我知道这个计数是不合法的,因为如果我看看sqllite文件,是看到只有87,或127或任何行计数..
我使用相同的上下文再次执行此获取,这就是为什么我认为问题在我的NSManaged上下文中。
为什么这种情况会发生在我身上?为什么这种情况有时会发生,但不是一直发生?我该如何解决它?
1条答案
按热度按时间fiei3ece1#
我已经找到了一个解决方案来解决这个问题,即使我现在知道,我将重新工作所有核心数据交互从地面上,使它真实的的稳定和可靠..这是我的第一个快速项目,所以一路上的事情变得相当混乱tbh:)
修复:事实上,我现在一次保存所有创建的对象,而不是保存每个项目本身,确实起作用,并在这个非常时刻为我解决了这个问题:)
也许这对其他人也有帮助;)