2012-03-30 12 views
-1

私の見解には4つのラベルがあります。ラベル値を高スコアから低スコアにソートする方法は?

どのように最高スコアから最低スコアまで並べ替えることができますか?

私は赤、緑に対して最も高いスコアの色と最低を変更すると黄色

間に2つのスコア私はこのコード

float a = ([label1.text floatValue]); 
float b = ([label2.text floatValue]); 
if (a > b) { //do something } 

を使用することができるが、私は4つのラベルを持っているのでと私はそれが他のより小さいか小さい場合は、各ラベルをチェックするための長いコードを記述したくありません。事前に

おかげ

答えて

1

まずラベルのソートされた配列にする:ラベルのランクを取得するために、次に

NSArray *labels = [NSArray arrayWithObjects:label1, label2, label3, label4, nil]; 
NSArray *sortedLabels = [labels sortedArrayUsingComparator:^(UILabel *a, UILabel *b) { 
    float first = [a.text floatValue]; 
    float second = [b.text floatValue]; 
    if (first < second) { 
     return NSOrderedAscending; 
    else if (first > second) { 
     return NSOrderedDescending; 
    } else { 
     return NSOrderedSame; 
    } 
}]; 

を、ちょうどウル助けを

NSUInteger rank = [sortedLabels indexOfObject:aLabel]; 
// rank goes from 0 to 3, with 0 corresponding to lowest value and 3 corresponding to highest value 
+0

ありがとうを行う:) – aLFaRSi

関連する問題