【问题标题】:How to remove CoreData's objects from memory?如何从内存中删除 CoreData 的对象?
【发布时间】:2009-09-02 06:41:24
【问题描述】:

我使用 CoreData 来存储用户从 iPhone 的相机拍摄的图像数据。随着时间的推移,这些对象消耗的内存不断增加,但我不知道如何从内存中清除这些对象。

这应该怎么做?

【问题讨论】:

    标签: iphone cocoa-touch core-data


    【解决方案1】:

    您可以告诉 managedObjectContext 保留或不保留对象(除了您保留的对象):

    [managedObjectContext setRetainsRegisteredObjects:YES];
    

    请参阅 http://developer.apple.com/documentation/Cocoa/Conceptual/CoreData/index.html?http://developer.apple.com/documentation/Cocoa/Conceptual/CoreData/Articles/cdRelationships.html 了解其作用。

    请注意,您还必须注意不要自己保留和泄漏对象,否则将不起作用。

    -威尔

    【讨论】:

    • 另外,您可以使用 [NSManagedObjectContext reset] 从内存中擦除所有对象并在该上下文中重新开始。最后,NSManagedObjectContext 的 refreshObject:mergeChanges: 方法可用于清除给定单个实体的属性对象(它将属性变成故障)。
    猜你喜欢
    • 2023-03-29
    • 1970-01-01
    • 1970-01-01
    • 2011-06-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多