【发布时间】:2014-10-09 12:52:58
【问题描述】:
我有这样的字典
NSDictionary *dictA = @{ @"name" : @"John",
@"city" : @"Los Angeles" };
NSDictionary *dictB = @{ @"name" : @"Bob",
@"city" : @"Los Angeles" };
NSDictionary *dictC = @{ @"name" : @"Carl",
@"city" : @"Dallas" };
像这样的几十个字典被城市分开,放在其他字典里
NSArray *losAngeles = @[ dictA, dictB, ....];
NSArray *dallas = @[ dictC, ... ];
一切都在一个数组中
self.arrayAll = @[losAngeles, dallas, miami... ];
现在更好的部分是,我想要一个包含 Bob 的字典(假设所有的名字都是唯一的)。
如果那是一个字典数组,我会这样做
NSPredicate *pred = [NSPredicate predicateWithFormat:@"(name BEGINSWITH[cd] %@)", @"Bob"];
NSarray *filteredNames = [self.arrayAll filteredArrayUsingPredicate:pred];
但是因为arrayAll是一个dicts数组,所以这不适用于以下错误:
*** 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“无法对不是字符串的内容进行子字符串操作????
有什么线索吗?
【问题讨论】:
标签: ios cocoa-touch nsarray nsdictionary nspredicate