我在数组中保存不同的代码,现在想检查一个代码是否在数组中。
我搜索了一下但没有任何工作......
在这里您可以看到我的数组的外观:
2013-04-28 12:43:23.877 myApp[9422:907] PushArray: (
{
code = 123;
titel = "Test 01";
},
{
code = 456;
titel = "Test 02";
},
{
code = 789;
titel = "Test 03";
}
)
我试过这个检查:
NSString *code = [NSString stringWithFormat:@"123"];;
if ([PushArray containsObject:code]) {
NSLog(@"Code true!");
}else {
NSLog(@"Code false!");
}
但每次我“代码错误!”回来......
答案 0 :(得分:1)
数组中的对象实际上是NSDictionary对象。因此,为了比较数字,让我们枚举数组并对该字典对象的值进行比较:
NSNumber * code = [NSNumber numberWithInteger: 123];
for(NSDictionary * anEntry in pushArray)
{
NSNumber * numberFromEntry = [anEntry objectForKey: @"code"];
if([code isEqualToNumber: numberFromEntry])
NSLog( @"code true!");
}
另请注意,我已将您的数组名称从“PushArray
”更改为“pushArray
”。标准Objective-C约定是使用小写字母表示变量&对象并使用大写来命名类。
(我的答案的原始版本 - 我很快就抓住并编辑了 - 用于比较字符串;但我猜测字典对象中的代码值实际上是数字而不是字符串)