0

さまざまなコードを配列に保存していますが、1 つのコードが配列に含まれているかどうかを確認したいと考えています。

私は少し周りを検索しましたが、何も機能しませんでした...

ここに、私の配列がどのように見えるかを示します。

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

しかし、「 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 に答える