【问题标题】:Core data error : File remains undeleted核心数据错误:文件仍未删除
【发布时间】:2017-06-22 09:49:40
【问题描述】:

我执行了一个获取请求,最终得到了托管对象。使用 [managedObj deleteObject:file] 删除托管对象,该对象不会出现在进一步的 fetch request 中。但文件仍留在内存中。

【问题讨论】:

    标签: ios objective-c core-data nsmanagedobject nsmanagedobjectcontext


    【解决方案1】:

    语句[managedObj deleteObject:file] 从上下文而不是内存中删除对象。在deleteObject 步骤之后尝试[managedObj save:&error]

    【讨论】:

    • 我尝试保存上下文。 [context save:&error]; if (error) {NSLog(@"An error occurred while deleting a row: %@", error); } 。它没有帮助。
    • 参考这个苹果开发者链接。 developer.apple.com/library/content/documentation/…
    • 即使在 Apple Doc 中保存上下文后,文件仍然存在。只是该行在.sqlite 文件中被删除。
    • “文件存在”是什么意思?您的意思是托管对象仍然存在,还是您要删除的某个实际文件?
    【解决方案2】:

    我做了以下[managedObj deleteObject:file] 来删除托管对象。

    [[NSFileManager defaultManager] removeItemAtPath:filePath error:&error] 从内存中删除文件。

    【讨论】:

    • 您的回答与您提出的问题不相符。您应该提到您需要删除一个文件,而不仅仅是一个托管对象。
    • 我在我的问题中也解释过。
    猜你喜欢
    • 2012-07-12
    • 1970-01-01
    • 1970-01-01
    • 2011-10-06
    • 2017-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多