【发布时间】:2015-02-12 18:49:33
【问题描述】:
我知道你可以做类似 [..."SELF.some_id == [c] %d AND SELF.some_id == [c] %d", id1, id2] 的事情,但我需要的不止这些。有没有办法在不构建字符串的情况下做到这一点。
例如...
NSArray *arrayOfWantedWidgetIds = @[1,3,5,6,9,13,14,16];
NSMutableArray *allWidgets = [[WidgetManager sharedWidget] getAllWidgets];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF.widget_id ==[c] %d", arrayOfWantedWidgetIds]; //obviously we can't do this, it won't accept an array of IDS for %d
[allWidgets filterArrayUsingPredicate:predicate];
我怎样才能实现这样的目标?另一种方式......如果我循环这个,并为arrayOfWantedWidgetIds中的每个值制作单独的谓词,然后将所有单独的谓词添加到一个数组中......这也无济于事,因为filterArrayUsingPredicate只接受一个NSPredicate。不是它们的数组。
【问题讨论】:
标签: objective-c cocoa nsarray nspredicate