Создайте предикат (в следующем предполагается, что у вашего Person
класса есть свойства строки name
и number
):
NSString *nameFilter = @"Steve*";
NSString *numberFilter = @"555-*";
NSPredicate *pred = [NSPredicate predicateWithFormat:@"(name like %@) or (number like %@)", nameFilter, numberFilter];
Затем отфильтруйте массив (предполагается, что у вас есть NSArray
из Person
объектов):
NSArray *personArray = /* obtain from somewhere */;
NSArray *filtered = [personArray filteredArrayUsingPredicate:pred];
Результатом будет массив, содержащий Person
объектов, name
которых может быть & ldquo; Steve & rdquo ;, & ldquo; Steven & rdquo; и т. д., номер которого начинается с 555-
.
Редактировать
То, что вы говорите, на самом деле не имеет смысла. Вы не можете удалить свойства из класса (или, скорее, вы не должны ). Если вам нужен только массив, содержащий только имена и числа, вам придется перебирать массив объектов Person
:
NSMutableArray *result = [NSMutableArray array];
for (Person *p in personArray)
[result addObject:[NSString stringWithFormat:"%@ : %@", [p name], [p number]]];