gpt4 book ai didi

objective-c - JSONkit 排序问题

转载 作者:行者123 更新时间:2023-11-28 20:42:23 26 4
gpt4 key购买 nike

我正在使用基于 REST 的网络服务来获取数据。无论 JSON 文档的结构如何,NSDictionary 都会以相同的方式填充。我希望在 Web 服务返回时保留排序。

这是我的代码:

-(void) getData
{
NSURL *url = [NSURL URLWithString:@"http://somewebservice"];
__block ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
[request setCompletionBlock:^{
// Use when fetching text data
NSString *responseString = [request responseString];

NSDictionary *resultsDictionary = [responseString objectFromJSONString];


[jokesArray release];
jokesArray = [resultsDictionary allValues]; //always has the same order.

[jokesArray retain];


[self.tableView reloadData];





// Use when fetching binary data
// NSData *responseData = [request responseData];
}];
[request setFailedBlock:^{
NSError *error = [request error];

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"An error occured"
message:[error description]
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alert show];
[alert release];
}];
[request startAsynchronous];
}

最佳答案

NSDictionary 中的条目没有固有的顺序;根据定义,它们是未排序的。 allValues 返回的数组也是如此,正如文档中明确指出的那样:

The order of the values in the array isn’t defined.

之后您需要对数组进行排序。如果要保持 JSON 源中的相同排序顺序,则必须手动解析 JSON 数据并从字典中一个接一个地检索值。或者,如果您知道 JSON 数据是如何排序的,只需将相同的排序算法应用于 allValues 返回的数组即可。

关于objective-c - JSONkit 排序问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7947234/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com