最近、いくつかのドキュメントといくつかのブログ エントリを読み、Key-Value Coding
非常に役立つことがわかりました。自分の場合に利用したいのですが、今のところ成功していません。
私の場合、NSMutableArray
含む がにCGPoint
変換されていNSValue
ます。このデータ配列に多くのポイントを追加し、x と y の最小値/最大値を取得したいと考えています。例えば:
NSMutableArray *data = [[NSMutableArray alloc] init];
[data addObject:[NSValue valueWithCGPoint:CGPointMake(20.0f, 10.0f)]];
[data addObject:[NSValue valueWithCGPoint:CGPointMake(5.0f, -15.0f)]];
[data addObject:[NSValue valueWithCGPoint:CGPointMake(-5.0f, 20.0f)]];
[data addObject:[NSValue valueWithCGPoint:CGPointMake(15.0f, 30.0f)]];
// min X: -5.0, max X: 20.0
// min Y: -15.0, max Y: 30.0
これまでに2つのアプローチがあります。1 つ目は、これら 4 つの値をクラス インスタンス変数に格納し、新しいオブジェクトが追加されたときにそれらの変数と比較し、必要に応じて更新することです。2 つ目は、極値を見つけるために for ループを使用しますが、このアプローチは非効率的です。
可能であれば、KVC を使用してこのタスクを実行したいと考えています。これは、私が持っているソリューションよりも一般的なソリューションになると思います。将来的には、配列からいくつかのオブジェクトを削除する必要が生じる可能性があります。これにより、最初のアプローチが適用できなくなり、for ループだけが残ります。
いくつかのキー パス、つまり を使用しようとしまし@"@max.x"
た@"@max.position.x"
が、取得したのはNSUnknownKeyException
.