Я видел несколько вопросов/ответов относительно объектов фильтра с помощью NSSet/NSMutableSet. В этих случаях используются простые типы объектов, такие как NSString
или int
. Ниже приведен пример кодов, используемых для фильтрации NSString
объектов:Использование NSSet/NSMutableSet для фильтрации объектов?
NSSet smallArray = [[NSSet alloc] initWithObjects:@"0", @"1", @"2", nil];
NSArray bigArray = [[NSArray alloc] initWithObjects:@"0", @"1", @"4", @"5", ..., nil];
NSMutableSet *intersection = [NSMutableSet setWithArray:smallArray];
[intersection intersectSet:[NSSet setWithArray:bigArray];
NSArray *result = [NSArray arrayWithSet:intersection];
Я не знаю, как это работает, если объекты в наборе или массиве являются экземплярами класса Object-C. Возьмем следующий класс:
@interface MyObject: NSObject {
int id;
NSString *name;
NSString *city;
...
}
Я не уверен, как установить interetSet набора: работает с объектами вышерасположенного типа. Если я хочу получить пересекающееся множество smallArray объектов MyObject
и bigArray, только сравнивая id, я сомневаюсь, могу ли я использовать метод выбора intersetSet:
? Если нет, не уверен, должен ли я добавить какой-либо метод к классу MyObject
, чтобы набор знал, как сравнивать объекты?
Ваш ответ имеет смысл. Я попробую это сначала Спасибо! –