2016-11-22 8 views
0

NSNumberプロパティを持つカスタムクラスオブジェクトを持つNSArrayがあります。私は配列から最小値&の値をフェッチしようとしています。カスタムクラスオブジェクトを持つNSArrayから最小値と最大値を見つける方法は?

MyClass *minObj = [filteredArray valueForKeyPath:@"@min.self.height"]; 
MyClass *maxObj = [filteredArray valueForKeyPath:@"@max.self.height"]; 

これは動作し、私は最小値と最大値を得ることができますがNSNumber型のものである:これは私のコードです。従ってminObjmaxObjは数字であり、MyClassではありません。

NSNumberの代わりにMyClassを見つけるのに良い方法はありますか?

P.S.最小値と最大値の2つ以上の同じ値があります。

答えて

1

これを行うコードを書いてください。例えば、(答えに直接入力、マイナータイプミスを期待する):

MyObj *minObj = filteredArray[0]; 
for(MyObj *candidate in filteredArray) 
    if([candidate.height compare:minObj.height] == NSOrderedDescending) 
     minObj = candidate; 

もちろんminとmaxの両方が使用するアレイ上の単一のパスを使用して見つけることができます。

HTH

+0

'filteredArray'はソートする必要がありますか? – Hemang

+1

コードを読み、使用するアルゴリズムは何ですか(どのように機能するのですか)。配列がソートされている場合にのみ機能しますか?あなたが自分でそれを働かせれば、あなたはその答えをよりうまく理解するでしょう。 – CRD

関連する問題