2017-06-14 13 views
0

私は平日の配列を持っており、配列の任意の位置に日付を置くことができます。平日のNSArrayをどのように並べ替えるのですか?

たとえば、私の配列はFri、Wed、Mon、Tueです。だから私はそれを並べ替えると月、火、水、金になるでしょう。

どうすればよいですか?数値インデックスに一日の文字列をマッピングすることにより

+1

スタート:

NSArray *days = @[ @"Mon", @"Tue", @"Wed", @"Thu", @"Fri", @"Sat", @"Sun" ]; NSUInteger dayIndex = [days indexOfObject:string]; 

その後、あなたは、単に、その例を使用して配列をソートすることができます数値インデックス。 – Sulthan

答えて

1

スタート:に曜日の文字列をマッピングすることにより、

NSArray *sortedDays = [array sortedArrayUsingComparator:^NSComparisonResult(NSString *dayString1, NSString *dayString2) { 
    NSUInteger dayIndex1 = [days indexOfObject:dayString1];   
    NSUInteger dayIndex2 = [days indexOfObject:dayString2]; 

    if (dayIndex1 < dayIndex2) { 
     return NSOrderedAscending; 
    } 

    if (dayIndex1 > dayIndex2) { 
     return NSOrderedDescending; 
    } 

    return NSOrderedSame; 
}]; 
+0

私はこれを行う方法を一般的な考えを得る、私は別の、それを行う同様の方法について考えた。ありがとう –

関連する問題