我有一个名为myArray的数组:
@property(非原子,强)NSArray * myArray;
myArray的NSLog是:
2014-09-09 11:25:24.108 MyApp [8139:60b]阵列是:( ( 35, 约翰, 戴维斯 14, 1 ) ( 36, 哈利, DOE, 21, 1 ) ( 37, 麦克风, 布拉沃, 22, 1 ))
我想测试myArray中是否存在firstName。例如:如果" Mike"存在于myArray中......我怎么能这样做?这当然很容易,但我不知道该怎么做......
感谢您的帮助!
答案 0 :(得分:1)
好的,所以看起来你的数组是一个数组数组。有点奇怪地存储数据,但你可以做这样的事情......
- (BOOL)doesArray:(NSArray*)array containName:(NSString *)name
{
for (NSArray *propertyArray in array) {
if ([propertyArray containsObject:name]) {
return YES;
}
}
return NO;
}
这将告诉您数组是否包含给定的文本。
如果需要,您也可以使用类似的东西过滤它。
- (NSArray *)filterArray:(NSArray *)array containingName:(NSString *)name
{
NSPredicate *predicate = [NSPredicate predicateWithBlock:^(NSArray *propertyArray, NSDictionary *bindings) {
return [propertyArray containsObject:name];
}];
return [array filteredArrayUsingPredicate:predicate];
}
由此返回的数组将包含任何包含给定文本的数组。
答案 1 :(得分:0)
尝试以下解决方案
for(int i=0;i<array.count;i++)
{
NSArray *subArray=[array objectAtIndex:i];
for(int j=0;j<subArray.count;j++)
{
MyObject *obj=[subArray objectAtIndex:j];
if(array containsObject:obj.firstName)
{
[self.filteredArray addObject:obj];
}
}
它看起来更像代码..但希望它可以帮助你......!