4

私は NSArray 内に NSArray を持っているので:

@[
    @[ @1, @2, @3 ],
    @[ @7, @6 ]
 ]

valueForKeyPath:このメソッドを使用して各配列内のアイテムの数を取得するにはどうすればよいですか?

@[ @3, @2 ]

私は試しましたが、それは(so 2)[array valueForKeyPath:@"@count"]と同じ答えを提供します。[array count][array valueForKeyPath:@"count"]

4

2 に答える 2

-1

各配列内のアイテムの数をどのように「取得」したいのか正確にはわかりません (つまり、値を返すか、コンソールにログを記録するだけです)。また、各サブ配列内のアイテムの数だけが必要な場合valueForKeyPath:は、メッセージを呼び出す必要はありません...

配列内の各サブ配列の数を知りたいだけだと仮定します。

for ループを使用して、各エントリを繰り返し処理し、メッセージを各エントリにmyArray送信できます。count

NSArray *myArray = @[ 
                      @[@1, @2, @3], 
                      @[@7, @6]
                   ];

for (NSArray *entry in myArray) {
    NSLog(@"array at index %lu has count %lu", [myArray indexOfObject:entry], [entry count]);  
}

さらに一歩進んで、値をログに記録する代わりに、値を変数に格納して、プログラムの他の場所で使用することができます。

于 2013-10-29T04:12:31.630 に答える