2011-12-10 9 views
4

私はカスタムオブジェクトでいっぱいのNSArrayを持っています。 各オブジェクトにはpk、amount、dateなどの変数があります。NSArrayからindexOfObjectを見つける

pk変数の中で最も高い番号のオブジェクトを取得したいとします。 私が使用してこれを行うことができます。これは私の最高のPKからの実際の値を与える

NSUInteger maximumpk = [[bets valueForKeyPath:@"@max.pk"] intValue]; 

。今私はそのオブジェクトのインデックスを取得する必要があります。配列にデータの変数が1つしかないときにindexOfObjectが使用されていますが、このインスタンスではどのように使用しますか?

おかげ例えば

+0

こんにちはダレンは、あなたがオーバーライドする必要があります。 NSArrayでindexOfObjectを呼び出すと、isEqualMethodが呼び出されます。ですから、あなたはself.pkの等価性を渡すオブジェクトのpk値と照合することができます。 –

答えて

11

使用-indexOfObjectPassingTest:、: - カスタムクラスに(BOOL)のisEqual(NSObjectの*)

NSUInteger idx = [bets indexOfObjectPassingTest:^(id obj, NSUInteger idx, BOOL *stop) { 
    return [obj pk] == maximumpk; 
}]; 
+0

ありがとう、これはトリックでした。 – Darren

関連する問題