о поиске с помощью NSPredicate - PullRequest
       1

о поиске с помощью NSPredicate

1 голос
/ 05 сентября 2011

Это структура моего класса ContentItem

@interface ContentItem : NSObject {
    //properties of this class
    NSString *name;
    NSString *type;
...
}

, который NSArray имеет над объектами класса.Я хочу искать объекты, ища слова.Поэтому я попытался сделать это.

NSArray *filteredItem = [array filteredArrayUsingPredicate:
  [NSPredicate predicateWithFormat: @"SELF contains[cd] %@", searchString]];

результат:

Can't use in/contains operator with collection 
        <ContentItem: 0x68309b0> (not a collection)

На самом деле я не знаю, как искать объекты.Кто-нибудь может помочь?

Спасибо.

1 Ответ

4 голосов
/ 05 сентября 2011

Я думаю, что вам нужно получить доступ к собственности, которую вы собираетесь искать. См. Документы Apple для Использование предикатов с ключевыми путями

, например

NSArray *filteredItem = [array filteredArrayUsingPredicate:
  [NSPredicate predicateWithFormat: @"SELF.name contains[cd] %@", searchString]];

для обоих свойств

NSArray *filteredItem = [array filteredArrayUsingPredicate:
  [NSPredicate predicateWithFormat: @"SELF.name contains[cd] %@ OR SELF.type contains[cd] %@", searchString, searchString]];
...