检查数组是否包含特定字符串

时间:2013-04-28 10:50:27

标签: xcode arrays nsarray contains

我在数组中保存不同的代码,现在想检查一个代码是否在数组中。

我搜索了一下但没有任何工作......

在这里您可以看到我的数组的外观:

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!");
}

但每次我“代码错误!”回来......

1 个答案:

答案 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约定是使用小写字母表示变量&对象并使用大写来命名类。

(我的答案的原始版本 - 我很快就抓住并编辑了 - 用于比较字符串;但我猜测字典对象中的代码值实际上是数字而不是字符串)