Я следующий NSObject:массив фильтров Привычка с использованием предиката SearchBar
@interface finalObject : NSObject
@property NSString *name;
@property NSString *image;
который я объявляю, как это в моем ViewController:
finalArray = [[NSMutableArray alloc] init];
object = [finalObject new];
Тогда я зацикливание thename и изображение в object.name и object.image и добавьте этот объект в NSMutableArray, называемый finalArray.
- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qualifiedName attributes:(NSDictionary *)attributeDict {
if ([elementName isEqualToString:@"language"]) {
thename = attributeDict[@"name"];
theimage = attributeDict[@"image"];
theId = attributeDict[@"id"];
object.name = thename;
object.image = theimage;
NSArray *cols = @[thename, theimage, theId ];
[finalArray addObject:object];
[rows addObject: cols];
}
теперь я нужен мой searchbar.text искать через finalarray, что я делаю с помощью этого метода:
-(void) searchThroughdata {
self.filteredArray = nil;
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF contains [cd] %@",self.searchBar.text];
self.filteredArray = [[finalArray filteredArrayUsingPredicate:predicate] mutableCopy];
}
Проблема в том, что finalArray в:
[[finalArray filteredArrayUsingPredicate:predicate]
должен содержать только имя, а не изображение. Как я могу это сделать?
на данный момент я получаю эту ошибку:
'NSInvalidArgumentException', reason: 'Can't use in/contains operator with collection
<finalObject: 0x8c4f910> (not a collection)'
я пытался добавить self.name к "SELF содержит [CD]% @"
От взглядов этого вы только добавление одного объекта в массив. Можете ли вы опубликовать полный код для заполнения массива, а не только фрагменты? – Putz1103
Я добавил его сейчас. – user3258468
Операция 'object = [finalObject new];' не имеет для меня смысла. Вы называете 'new' на полностью включенном объекте' finalObject'? – Macondo2Seattle