在我的json文件中,我有一个title
,subtitle
和url
。
我对title
进行排序以按字母顺序设置项目,但url
未按title
排序,我不知道原因。
这就是我所做的:
NSDictionary *allDataDictionary = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableContainers error:nil];
NSArray *arrayOfItems = [allDataDictionary objectForKey:@"items"];
for (NSDictionary *diction in arrayOfItems) {
NSString *titles = [diction objectForKey:@"title"];
NSString *station = [diction objectForKey:@"url"];
[jsonArray addObject:titles];
[jsonStations addObject:station];
// SORT JSON
NSArray *sortedArray;
sortedArray = [jsonArray sortedArrayUsingComparator:^NSComparisonResult(NSString *title1, NSString *title2)
{
if ([title1 compare:title2] > 0)
return NSOrderedDescending;
else
return NSOrderedAscending;
}];
[jsonArray setArray:sortedArray];
当我按下tableView中的第一项时,我会从总差异url
获得title
。
我该怎么做才能使title
与tableView中的url
匹配?
答案 0 :(得分:0)
首先,这似乎是一种奇怪的排序方式,您应该使用字典而不是2个数组,否则事情会很快变得混乱。
其次,您需要将 sortedArray 传递给表而不是 jsonArray ,目前似乎只是尝试重置 jsonArray 。
我会创建一个方法来处理它(我已经剥离了一些你的排序脚本来简化这个)
-(NSArray *)sortContentWithJSONData {
NSDictionary *allDataDictionary = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableContainers error:nil];
NSArray *arrayOfItems = [allDataDictionary objectForKey:@"items"];
NSArray *sortedArray = [NSSortDescriptor sortDescriptorWithKey:@"title" ascending:false];
NSMutableArray *outputArray = [[NSMutableArray alloc] init];;
for (NSDictionary *diction in arrayOfItems) {
NSString *titles = [diction objectForKey:@"title"];
NSString *station = [diction objectForKey:@"url"];
[outputArray addObject:[NSDictionary dictionaryWithObjectsAndKeys:titles, @"title", station, @"station", nil]]
}
return [outputArray sortedArrayUsingDescriptors:[NSArray arrayWithObject:sortedArray]];
}
然后,您可以使用以下内容设置全局数组并在表视图中访问它...
NSArray *tableContent = [self sortContentWithJSONData];
希望稍微澄清一下:)