0

この配列があり、別の配列内の最初のインデックスにアクセスしたい。

(
    (
        1021,
        "String1,
        "<null>",
        "name1, name2",
        P,
        "String2",
        "Link1",
        "String3",
        "String4"
    ),
    (
        1025,
        "String1",
        "<null>",
        "name1, name2"
        P,
        "String2",
        "Link1",
        "String3",
        "String4"
    )
)

このコードを使用して NSLog を試みました:

NSLog(@"ID: %@", [[array objectAtIndex:0] objectAtIndex:0]);

しかし、うまくいきません。次のようなエラーが表示されます。

-[__NSCFString objectAtIndex:]: unrecognized selector sent to instance

最初の配列の最初の配列に値 1021 を記録したいだけです。

4

2 に答える 2

6

あなたが直面している問題は、のいずれかarrayまたは最初の要素arrayが文字列であるということです。

それを分離し、デバッガーを使用して、アレイが正しくロードおよびアクセスされていることを確認します。

NSArray *array = [NSArray /* load from somwhere */];
NSLog(@"%@", array);

NSArray *innerArray = [array objectAtIndex:0];
NSLog(@"%@", innerArray);

NSNumber *objectId = [innerArray objectAtIndex:0];
NSLog(@"%@", objectId);
于 2013-01-02T03:40:03.790 に答える
1

このエラーは、の最初のオブジェクトarrayが。であることを示していますNSString

上記の配列に文字列を追加するコードはありますか?

の最初のオブジェクトarrayが辞書である場合、コードは問題ありません。

于 2013-01-02T03:40:22.633 に答える