0

在我的 json 文件中,我有一个title,subtitleurl.

我对 进行排序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来自 total diffrent 的title。我应该怎么做才能title匹配urltableView中的?

4

1 回答 1

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];

希望能把事情弄清楚一点:)

于 2015-04-15T22:57:01.647 回答