0

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

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

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

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

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

4

1 回答 1

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 约定是对变量和对象使用小写字母,对类使用大写字母。

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

于 2013-04-28T10:53:38.660 回答