配列をソートしたい。ここに私の配列構造です。配列と日付のある辞書を並べ替える方法Key
(
(
//SubArray
)
{
date =“2016-03-16”;
}
)
------
------
ソートディスクリプタを使用してソートするにはどうすればよいですか?
可能ですか? (または)
配列構造を変更する必要がありますか(サブ配列を辞書に移動する)。
配列をソートしたい。ここに私の配列構造です。配列と日付のある辞書を並べ替える方法Key
(
(
//SubArray
)
{
date =“2016-03-16”;
}
)
------
------
ソートディスクリプタを使用してソートするにはどうすればよいですか?
可能ですか? (または)
配列構造を変更する必要がありますか(サブ配列を辞書に移動する)。
アレイにあなたの辞書を取り、以下は、この
NSSortDescriptor *descriptor = [[NSSortDescriptor alloc] initWithKey:@"date" ascending:YES];
yourArray=[yourArray sortedArrayUsingDescriptors:[NSArray arrayWithObjects:descriptor,nil]];
dictionaryArray = [yourArray copy];
@idevloper、しかし、その日付に属する最上位の配列が必要です –
あなたの答えはその質問に関連する仕事ではありません、あなたはこれを見ています '( //配列 ) '、これをソートする方法 –
それが役立つならば、私の回答が長いソリューション、それをこれを試しているが、それは短い賢明日付
// my Json responce in string
NSString *Str = @"{\"Array\":[{\"date\":\"01/15/2016\",\"Subarr\":[\"A\",\"B\"]},{\"date\":\"01/06/2016\",\"Subarr\":[\"C\",\"D\"]},{\"date\":\"16/02/2015\",\"Subarr\":[\"E\",\"F\"]},{\"date\":\"22/02/2016\",\"Subarr\":[\"G\",\"H\"]}]}";
// convert in to nsdata
NSData *data = [Str dataUsingEncoding:NSUTF8StringEncoding];
// final json responce
id json = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil];
// create a new Dictionary for shorting
NSMutableDictionary *Dic = [[NSMutableDictionary alloc] init];
// get all main array
NSArray *Temp1 = [json valueForKey:@"Array"];
for (int i = 0; i<Temp1.count; i++) {
id subjson = Temp1[i];
// get date and store in key string
NSString *Key = [subjson valueForKey:@"date"];
// get sub array and store in array object
NSArray *Object = [subjson valueForKey:@"Subarr"];
// now store object with key is date
[Dic setObject:Object forKey:Key];
}
// after get all key from created Dictionary
NSArray *keys = [Dic allKeys];
// short key date wise
NSArray *sortedArray = [keys sortedArrayUsingComparator:^NSComparisonResult(id a, id b) {
NSDateFormatter *format = [[NSDateFormatter alloc] init];
[format setDateFormat:@"DD/MM/YYYY"];
NSDate *FirstDate = [format dateFromString:a];
NSDate *SecondDate = [format dateFromString:b];
return [FirstDate compare:SecondDate];;
}];
// you can get short array by date wise
NSLog(@"%@",sortedArray);
// now you want array which is short wise date
NSMutableArray *Final_shortarr = [[NSMutableArray alloc] init];
for (int i=0; i<sortedArray.count; i++) {
NSString *Key = [sortedArray objectAtIndex:i];
[Final_shortarr addObject:[Dic objectForKey:Key]];
}
// this array give final short datewise array
NSLog(@"%@",Final_shortarr);
である配列を取得するために私を助けを行います
辞書にサブアレイを追加したようですか? –
yesキーがあるのは –
辞書を移動するサブアレイのような配列構造を変更した場合、The Solutionは上記の答えと同じように非常に簡単です。 –
私は理由がわかりました –