iphone coredata删除关系船连接的两个实体之间的记录

时间:2010-05-11 10:24:54

标签: ios iphone cocoa-touch core-data records

我正在我的iphone应用中实现核心数据。它有两个实体。 实体1:LatestData 实体2:LatestDetailedData

LatestData具有URL,publishedDate,heading LatestDetailedData具有URL,NewsDescription,PublishedDate,作者

两个实体都有相同的记录网址。 两个实体都用反向关系连接。关系船是“delete-> Cascaded”

我想要的:如果我删除了LatestData中的记录,我希望还必须删除在LatestDetailedData中具有相同URL的记录。

如何?

2 个答案:

答案 0 :(得分:1)

如果我正确地理解你,你正在使用一种关系而且它有一个反转。如果是这种情况,那么当你删除一个时,Core Data会自动删除另一个,你不需要做任何额外的事情。

你看到的是什么表明没有发生?

更新

由于您使用的是多个线程,因此每个线程使用一个NSManagedObjectContext吗?如果是这样,您是否在保存时更新所有线程?我怀疑其中一个没有发生,因此导致你的问题。

答案 1 :(得分:0)

当您创建实体时,您也需要创建关系

LatestDetailedData * entity2 = [[NSEntityDescription insertNewObjectForEntityForName:@"LatestDetailedData" inManagedObjectContext:context]; 
entity1.lastestdetail=entity2;

如果您只是依赖于URL字段,那就是不好的做法。在coredata中建立关系,级联删除将自行处理。