Я застрял в следующей проблеме:
У меня есть два NSArrays, каждый из которых содержит объекты подкласса NSManagedObject.
Они питаются из разных источников, но объекты в них все еще имеют те же свойства / значения.
Теперь я хочу проверить, содержит ли массив A объекты из массива B и наоборот.
К сожалению, метод NSOray containsObject здесь не работает.
Я думаю, что он использует id-тестирование для проверки равенства каждого объекта, не так ли?
Итак, у кого-нибудь есть подсказка, что попробовать?
Я даже пытался инкапсулировать свои объекты в NSSets, используя member: в качестве моего метода сравнения, но это также не сработало, особенно потому, что «вы не должны переопределять» isEqual и т. Д. Для подклассов NSManagedObject.
Вот фрагмент кода:
//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];
}
}
Заранее спасибо за любую подсказку;)