gpt4 book ai didi

ios - 删除或移除 CoreData 中的 ManagedObject

转载 作者:可可西里 更新时间:2023-11-01 03:49:39 25 4
gpt4 key购买 nike

在文档和广泛的文献中,生成的用于删除/删除 CoreData for IOS 中的子类托管对象的工厂方法是

(void)removeXXXObject:(NSManagedObject *)value

其中XXX是对应关系或者我们可以简单地使用removeObject。

在我的代码中我使用了这个:

Data *lastData = [[self sortedPersonDatas] objectAtIndex:0];
[selectedPerson removePersonDatasObject:lastData];

其中 PersonDatas 是与数据管理对象的一对多关系,我从中获取了最后一个数据(lastData 来自所有数据的排序数组)但是使用前两个remove方法,查看后面的SQL数据库,发现实际数据是存在的,只是反关系为null。要完全删除数据(所有属性和对象),我必须使用:

[selectedPerson.managedObjectContext deleteObject:lastData];

问题:哪种方法更好,CoreData 完整保留数据是否正确?

最佳答案

removeXXXObject 仅从一对多关系中删除对象,但不会从存储中删除对象。为此,您确实必须使用 deleteObject - 这是所需的行为。默认情况下,调用 deleteObject 也会将对应关系设置为 nil(请参阅 https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/CoreData/Articles/cdRelationships.html#//apple_ref/doc/uid/TP40001857-SW1)。

关于ios - 删除或移除 CoreData 中的 ManagedObject,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13494535/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com