【发布时间】:2016-09-28 15:22:14
【问题描述】:
我正在用 Objective-C 制作一个新的 iOS 应用程序。我的应用程序使用提供 JSON 数据的 API。问题是列表中有数百个 JSON 对象,无法使用 API 缩小搜索范围。我只想要前十个,但是当我扫描它们时全部需要很长时间。
有没有办法只扫描前 10 个(或任何数量)JSON 对象并停止?
这是我当前获取所有数据的代码。
- (void)fetchCodeForces {
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
NSString *requestString = @"https://codeforces.com/api/contest.list?gym=false";
NSURL *url = [NSURL URLWithString:requestString];
NSURLRequest *req = [NSURLRequest requestWithURL:url];
NSURLSessionDataTask *datatask = [self.session dataTaskWithRequest:req completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {
NSDictionary *json = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil];
_f1 = json[@"result"];
for (NSDictionary *d in _f1) {
if ([d[@"phase"] isEqualToString:@"BEFORE"])
{
[_fetched addObject:d];
}else {
break;
}
}
dispatch_async(dispatch_get_main_queue(), ^ {
[self.tableView reloadData];
});
}];
[datatask resume];
});
}
【问题讨论】:
标签: objective-c json nsdictionary nsurl