2012-02-06 17 views
1

まず、私の悪い英語については残念です。私はあなたが理解できないことを願っています。2次元多次元NSMutable配列をソートする方法

私は私の問題のために3日間かけて検索し、私は私がNSMutablearraysを含むNSMutableArrayのを持って解決策:( を認めなかった

私はウェブからデータを取得weboutputは、次のようになります。。

(「クラブ2」、「14」、「クラブ」、「Weilimdorfer213」 (「レストラン2」、「10」、「ホテル」、「Solitudestr」、「ドイツ」、 「48.81155」、「9.10903」) 、 "Germany"、 "48.814"、 "9.1311666666667")、( "Thai Meat"、 "22"、 "Gastro"、 "Weilimdorfer193"、 "70469 Stuttgart"、 "48.813833333333" 、 "9.1328333333333"))

だから私はここに1 NSMutableArrayの内部の3つのNSMutableArrayの年代を持っています。私はカスタムCellviewで私のTableviewでArrayを表示しています。

私の質問は、最初の値で3つの内部配列を並べ替える方法です。 (最初の値の値:Restaurant2、クラブ2、タイの肉)

だから、最初の配列は次のようになります。

( "クラブ2"、 "14"、 "クラブ"、 "Weilimdorfer213"、 "ドイツ"、 "48.814"、 "9.1311666666667")

秒:

( "Restaurant2"、 "10"、 "ホテル"、 "Solitudestr"、 "ドイツ"、 "48.81155"、 "9.10903")

第三:

( "タイ肉"、 "22"、 "胃"、 "Weilimdorfer193"、 "70469 シュトゥットガルト"、 "48.813833333333" 、 "9.1328333333333")

どのソート関数を使用すればよいですか?

2番目のステップでは、指定された座標の距離を取得し、その距離を現在の位置にソートする必要があります。

私はすでに距離を得ました。しかし、どのようにこれを並べ替えるには?

ありがとうございました!

+0

最初の値の文字列の長さなどでソートしますか? –

+0

アルファベット順に並べ替えたい – Martino

答えて

1

これは、配列を使用する代わりに、情報を格納するカスタムオブジェクトを作成する方がはるかに簡単です。

Dave DeLongによって書かれたこの例を、thisポストに見てください。

//ScoreRecord.h 
@interface ScoreRecord : NSObject { 
    NSString * label; 
    NSUInteger score; 
} 
@property (nonatomic, retain) NSString * label; 
@property (nonatomic) NSUInteger score; 
@end 

//ScoreRecord.m 
#import "ScoreRecord.h" 
@implementation ScoreRecord 
@synthesize label, score; 

- (void) dealloc { 
    [score release]; 
    [super dealloc]; 
} 

@end 

//elsewhere: 
NSMutableArray * scores = [[NSMutableArray alloc] init]; 
ScoreRecord * first = [[ScoreRecord alloc] init]; 
[first setLabel:@"Label 1"]; 
[first setScore:1]; 
[scores addObject:first]; 
[first release]; 
//...etc for the rest of your scores 

あなたscores配列を埋めたら、あなたが今行うことができます。この後

//the "key" is the *name* of the @property as a string. So you can also sort by @"label" if you'd like 
NSSortDescriptor * sortByScore = [NSSortDescriptor sortDescriptorWithKey:@"score" ascending:YES]; 
[scores sortUsingDescriptors:[NSArray arrayWithObject:sortByScore]]; 

、あなたのscores配列は、スコアの昇順でソートされます。

Collections Programming TopicsNSSortDescriptorをご覧ください。