【发布时间】:2012-02-14 16:12:11
【问题描述】:
我已经被以下问题困扰了很长一段时间了: 我有两个 NSArray,都包含 NSManagedObject 子类对象。 它们由不同的来源提供,但其中的对象仍然具有相同的属性/值。 我现在要做的是检查数组 A 是否包含数组 B 中的对象,反之亦然。 不幸的是,NSArray 的 containsObject 方法似乎在这里不起作用。 我认为它使用 id-testing 对每个对象进行相等性检查,不是吗?
那么,有人知道要尝试什么吗?
我什至尝试将我的对象封装在 NSSets 中,使用 member: 作为我的比较方法,但这也没有奏效,特别是因为 NSManagedObject 子类的“你不能覆盖”isEqual 等。
这是一个代码sn-p:
//manufacturers is an array, parsed out of some xml here...
for(Manufacturer *manu in [fetchedResultsController fetchedObjects])
{
if(![manufacturers containsObject:manu])
{
NSLog(@"Deleting %@", manu.name);
[self.mContext deleteObject:manu];
}
}
for(Manufacturer *manu in manufacturers)
{
if(![[fetchedResultsController fetchedObjects] containsObject:manu])
{
NSLog(@"Adding %@", manu.name);
[newArray addObject:manu];
}
}
提前感谢任何提示;)
【问题讨论】:
标签: iphone objective-c ios core-data