-1

for ループでは、

NSLog (@"%@", [[<array> objectAtIndex:i]-><specific_var>]; 

各インデックス位置には 2 つの変数が必要で、そのうちの 1 つにアクセスしたいと思います。どうもありがとう。

編集済み:この場合、プロパティにアクセスしようとしています

4

3 に答える 3

3

一時的なローカル変数を作成する方がはるかに優れています。->を使用せずにプロパティにアクセスし、コードをより明確にするのに役立ちます。

例えば

TheObject *object = array[i]; //same as [array objectAtIndex:i]
NSLog(@"%@", object.property);
于 2013-11-14T23:52:51.237 に答える
3

->Objective-C オブジェクト ( 以外)に適用するのselfは、そのオブジェクトのメソッドの外部からオブジェクトのインスタンス変数にアクセスする場合のみです。そして、私たちはそれをしたいとはほとんど思っていません。

とにかく、objectAtIndex:メソッドの戻り値の型はid. Anidには public インスタンス変数はありません。

配列内のオブジェクトが特定の型であることがわかっていて、それらのオブジェクトのインスタンス変数に直接アクセスしたい場合 (これは一般的に強く嫌われています)、最初に戻り値を正しい型にキャストする必要があります。例:

NSLog(@"%@", ((MyObject *)[myArray objectAtIndex:i])->_myInstanceVariable);

idしかし、一般的には、より具体的な型にキャストする必要がないアクセサー メソッドを使用する方がはるかに優れています。

于 2013-11-14T23:46:11.477 に答える
1

リテラル構文を使用すると、より簡単になります。

NSLog(@"%@", [someArray[i] someGetter]);

またはそれは配列の配列ですか:

NSLog(@"%@", someArray[i][someIndex]);
于 2013-11-14T23:43:41.413 に答える