Как отсортировать значение NSDictionary в iphone - PullRequest
0 голосов
/ 02 марта 2012

Я хочу отсортировать значение словаря, следующее за моим словарным ответом, у которого есть четыре пары значений ключа, таких как - "artist_id", "artworks_count", "first_name", "last_name".Я хочу отсортировать в соответствии с "first_name" , как это сделать.Пожалуйста, помогите мне.

2012-03-02 16:10:41.299 Paddle8[4928:207] The currentArtistNameDict is-- >{
    "artist_id" = 370;
    "artworks_count" = 1;
    "first_name" = Gerri;
    "last_name" = Davis;
}
2012-03-02 16:10:41.300 Paddle8[4928:207] The currentArtistNameDict is-- >{
    "artist_id" = 369;
    "artworks_count" = 1;
    "first_name" = Stephen;
    "last_name" = Cimini;
}

2012-03-02 16:10:41.302 Paddle8[4928:207] The currentArtistNameDict is-- >{
    "artist_id" = 367;
    "artworks_count" = 1;
    "first_name" = Melinda;
    "last_name" = Buie;
}

2012-03-02 16:10:41.305 Paddle8[4928:207] The currentArtistNameDict is-- >{
    "artist_id" = 358;
    "artworks_count" = 7;
    "first_name" = Kcho;
    "last_name" = "<null>";
}

Любая помощь высоко ценится.

1 Ответ

3 голосов
/ 02 марта 2012

NSDictionary объекты по определению не отсортированы, поэтому вам лучше перебрать свой словарь и поместить элементы в NSMutableArray, а затем использовать метод sortUsingDescriptors для сортировки массива.может помочь:

scores = [NSMutableArray arrayWithArray:[defaults
objectForKey:@"HighScores"]];
[scores addObject:[NSDictionary dictionaryWithObjectsAndKeys:@"Andrew", @"Name", [NSNumber           numberWithUnsignedInt:45], @"Score", nil]];
[scores addObject:[NSDictionary dictionaryWithObjectsAndKeys:@"Andrew2", @"Name",     [NSNumber numberWithUnsignedInt:55], @"Score", nil]];
[scores sortUsingDescriptors:[NSArray arrayWithObject:[[[NSSortDescriptor alloc]    initWithKey:@"Score" ascending:NO] autorelease]]];

(взято из http://www.iphonedevsdk.com/forum/iphone-sdk-development/6146-sort-array-dictionary-objects.html)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...