2

xcode 4.6 である最新の xcode を入手しましたが、次の問題があります。

NSArray *array = @[@[@"a",@"b"]];
NSLog(@"%d", array[0].count);

実行する前に、xcode から「プロパティ 'count' がタイプ 'id' のオブジェクトに見つかりませんでした」と表示されました。


しかし、私がそれを

NSLog(@"%d", [array[0] count]);

その後、すべてが順調です。


私の質問は、なぜ obj-c がtwo_d_array[index].countを処理できないのですか?

4

2 に答える 2

3

のドキュメントを参照してNSArrayください。countプロパティはありません。実際、 にはプロパティがまったくありませんNSArray

非プロパティ メソッドにプロパティ構文を使用すると、特定の型のオブジェクトがあり、同じ名前のメソッドがあれば、コンパイラは問題なく処理します。しかし、この場合、id. そのため、コンパイラは、プロパティにアクセスしようとする試みをメソッドcountの呼び出しに変換する必要があることを安全に判断できません。count

于 2013-05-18T17:24:44.420 に答える