尝试使用CONTAINS时NSPredicate崩溃

时间:2013-10-06 14:18:44

标签: objective-c cocoa-touch cocoa core-data

我想问的数据结构。 DataTransformable字段,后者又是NSDictionary

Obj = { //...
    NSDictionary *data:@{
                         likesPeople:@[@{@"username":@"jack",@"id":@"ae3132"}]
                         }
}

我想要做的是在NSArray *fetchResult内搜索,检查likesPeople中是否有人使用X id。  我这样做的尝试总是突然强调我的NSPredicate声明中存在问题。

我做错了什么?如何有效地获取我想要的信息?

SocialWall *theSocialWall = fetchResult[0];
        NSLog(@"%@",theSocialWall.data);
        NSPredicate * predicate = [NSPredicate predicateWithFormat:@"data.likesPeople CONTAINS(c) %@",myUser.userWebID];

        NSArray * result = [fetchResult filteredArrayUsingPredicate:predicate];
        NSLog(@"%@",result);

1 个答案:

答案 0 :(得分:1)

不包含(c)但包含[c]


#import <Foundation/Foundation.h>

int main(int argc, char *argv[]) {
@autoreleasepool {
    NSDictionary *d = @{@"key":@"hi my name dominik pich"};
    NSArray *a = @[d];
    NSPredicate * predicate = [NSPredicate predicateWithFormat:@"key CONTAINS[c] %@",@"dominik"];
    NSArray * result = [a filteredArrayUsingPredicate:predicate];
    NSLog(@"%@",result);
}
}