9

辞書を使用してNSArrayから最大の値を取得するにはどうすればよいですか?

「age」、「name」などのキーを持つ辞書を含むNSArrayがあるとします。次に、最も古いレコードを取得したいとします。これはKVCの魔法で可能ですか?それとも、繰り返して「手動」の方法で実行する必要がありますか?

私はこれに似たもので試しました:

int max = [[numbers valueForKeyPath:@"@max.intValue"] intValue];
4

2 に答える 2

16

「intValue」が辞書のキーでない限り、キーパスはあまり役に立ちません。

@"@max.age"それがあなたがそれを得るために(辞書で)使用するべきである後の最大年齢であるならば。辞書の他のキーについても同じことが言えます。

[myDictionary valueForKeyPath:@"@max.age"];

numbersが値の配列である場合、最大値を取得するためのキーパスとして使用できます@"@max.self"

[myArrayOfNumbers valueForKeyPath:@"@max.self"];
于 2012-07-17T12:54:35.050 に答える
2

あなたはもうすぐそこにいます、あなたはあなたが最大値を望むあなたが望む正確なフィールドを指定する必要があるだけです:

NSInteger max = [[numbers valueForKeyPath:@"@max.age"] integerValue];

誰かがiOSとOSXの両方でこのコードを使用したい場合に備えて、私は自由にあなたintのsをsに変更しました。NSInteger

于 2012-07-17T12:53:49.333 に答える