Я видел несколько вопросов / ответов относительно объектов фильтра с использованием NSSet / NSMutableSet.В этих случаях используется простой тип объектов, например NSString
или int
.Ниже приведен пример кодов, используемых для фильтрации NSString
объектов:
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;
...
}
Я не уверен, как setset intersetSet: работает с объектами вышеуказанного типа.Если я хочу получить набор пересечений smallArray из MyObject
объектов и bigArray, сравнивая только id, я сомневаюсь, что смогу использовать intersetSet:
метод селектора?Если нет, не уверен, стоит ли добавлять какой-либо метод в класс MyObject
, чтобы набор знал, как сравнивать объекты?