這可以通過使用 「SELF [指數]」 的謂詞來完成:
NSArray *array = @[
@[@"databaseVersion", @13],
@[@"lockedSetId", @100],
@[@"databaseVersion", @55],
@[@"foo", @"bar"]
];
NSPredicate *pred = [NSPredicate predicateWithFormat:@"SELF[0] == %@", @"databaseVersion"];
NSArray *filtered = [array filteredArrayUsingPredicate:pred];
NSLog(@"%@", filtered);
輸出:
(
(
databaseVersion,
13
),
(
databaseVersion,
55
)
)
或者你可以使用基於塊的斷言:
NSPredicate *pred = [NSPredicate predicateWithBlock:^BOOL(NSArray *elem, NSDictionary *bindings) {
return [elem[0] isEqualTo:@"databaseVersion"];
}];
啊很不錯。這正是我正在尋找的。只是好奇你想出了SELF [index]值。我沒有看到文檔中的任何地方? – Kyle
@Zenox它是在BNF中爲謂詞格式字符串定義的:http://developer.apple.com/library/mac/documentation/cocoa/conceptual/Predicates/Articles/pBNF.html#//apple_ref/doc/uid/TP40001796 -217950 –