今私が取っている私のNSDictionary
、低、高、及び計算平均を見つけるために、すべての値のループを実行しています。IOSはNSDictionaryの低い平均
私はですので、からIOS
ですので、これを行うより良い方法があるかどうか尋ねたいと思います。ある? ありがとう。
今私が取っている私のNSDictionary
、低、高、及び計算平均を見つけるために、すべての値のループを実行しています。IOSはNSDictionaryの低い平均
私はですので、からIOS
ですので、これを行うより良い方法があるかどうか尋ねたいと思います。ある? ありがとう。
この質問への正確な答えは、どのタイプのオブジェクトがNSDictionaryにあるかによって異なります。一般的な答えは、Key-Value Coding演算子を使用して、必要な処理を行うことができるということです。ここに例があります:
NSNumber *one = [NSNumber numberWithInt:1];
NSNumber *two = [NSNumber numberWithInt:2];
NSNumber *three = [NSNumber numberWithInt:3];
NSDictionary *dictionary = [NSDictionary dictionaryWithObjectsAndKeys:one, @"apple", two, @"orange", three, @"pear", nil];
NSLog(@"The max number is %@", [[dictionary allValues] valueForKeyPath:@"@max.intValue"]);
NSLog(@"The min number is %@", [[dictionary allValues] valueForKeyPath:@"@min.intValue"]);
NSLog(@"The mean is %@", [[dictionary allValues] valueForKeyPath:@"@avg.intValue"]);
これはおそらくあなた自身を列挙するより効率的ではありませんが、より簡潔です。
NSDictionaryの内容がNSNumberをプロパティとして持つカスタムクラスのオブジェクトである場合は、@avg
の後ろにプロパティ名を配置することでこのメソッドを使用できます。 @avg.myProperty
。これらのvalueForKeyPath
メソッドはNSNumberを返すことに注意してください。
これを行うには、辞書を列挙することによってどのようにしているのかを確認するよりも良い方法はありません。これは主に、NSDictionary
に不透明なオブジェクトが含まれているためです。それらはNSString
であるかもしれません、それらはNSNumber
sかもしれませんまたはCHZLolCat
sかもしれません。彼らは何でもかまいません。だから、すべてが低、高、平均の概念を持っているわけではないので、低、高、平均の方法を持つことは理にかなっていません。
しかし、私たちにいくつかのコードを示したら、列挙の実際の方法について具体的なアドバイスを提供することができます。
質問を編集してコードに貼り付けます。 –