关于使用NSPredicate进行搜索

时间:2011-09-04 23:50:33

标签: objective-c nspredicate

这是我的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 个答案:

答案 0 :(得分:4)

我认为您需要访问您要搜索的媒体资源。请参阅Apple文档Using Predicates with Key-Paths

e.g。

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]];