いくつかのインスタンスがNSArray
含まれています。NSDictionary
それぞれNSDictionary
に、他のフィールドの中でも、という名前のオブジェクトrating
と1つnumberOfVotes
(両方ともint
)があります。rating
/でソートされるように配列をソートするにはどうすればよいnumberOfVotes
ですか?より一般的には、上記のような操作を行って並べ替えることはできますか?または、各操作の値を使用してそれぞれに別のオブジェクトを追加NSDictionary
し、それで並べ替える方がよいでしょうか。
ありがとう
編集-私は以下を追加しました。まだ正しく並べ替えられていません。1つの質問:これは私の配列内の3つ以上のオブジェクトに対して機能する必要があります。(オブジェクトの数は異なります)
[sortedArray sortedArrayUsingComparator:^NSComparisonResult(id dict1, id dict2)
{
MyObj *obj1 = (MyObj *)dict1;
MyObj *obj2 = (MyObj *)dict2;
int rating1 = obj1.rating.intValue;
int rating2 = obj2.rating.intValue;
int number1 = obj1.number_of_votes.intValue;
int number2 = obj2.number_of_votes.intValue;
double key1 = ((double)rating1)/number1;
double key2 = ((double)rating2)/number2;
if (key1 < key2)
{
return NSOrderedDescending;
}
if (key2 < key1)
{
return NSOrderedAscending;
}
return NSOrderedSame;
}];