hachinoBlog

hachinobuのエンジニアライフ

CoreDataでIN句を使う方法

CoreDataでIN句を使用する方法は

NSArray *users = [NSArray arrayWithObjects:@"user1", @"user2", @"user3", nil];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"user IN %@", users];

Not INは

NSArray *users = [NSArray arrayWithObjects:@"user1", @"user2", @"user3", nil];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"NOT (user IN %@)", users];

ちなみに、

NSString *user = @"user";
NSArray *users = [NSArray arrayWithObjects:@"user1", @"user2", @"user3", nil];
NSPredicate *predicate = [NSPredicate predicateWithFormat:[NSString stringWithFormat:@"%@ IN %@", user, users]];

のようにpredicateWithFormat内でNSStringのstringWithFormatを使うとうまく動かないので注意。


参考URL
http://sunalab.blogspot.jp/2011/08/coredatasetinnot-in.html