Objective c Instagram提要的递归分页。我怎样才能做得更快?
我正在使用Instagram API,希望显示一个屏幕,显示用户的照片,按喜欢的数量排序。 所以,我需要一个包含所有照片的阵列 我是这样做的:Objective c Instagram提要的递归分页。我怎样才能做得更快?,objective-c,pagination,instagram,nsurlsession,instagram-api,Objective C,Pagination,Instagram,Nsurlsession,Instagram Api,我正在使用Instagram API,希望显示一个屏幕,显示用户的照片,按喜欢的数量排序。 所以,我需要一个包含所有照片的阵列 我是这样做的: - (void)fetchAllPostsFromURL:(NSURL *)url success:(void(^)(NSArray *posts))success { __block NSArray *allPosts = [NSMutableArray array]; NSURLSessionDataTask *dataTask
- (void)fetchAllPostsFromURL:(NSURL *)url success:(void(^)(NSArray *posts))success {
__block NSArray *allPosts = [NSMutableArray array];
NSURLSessionDataTask *dataTask = [self.session dataTaskWithURL:url completionHandler:^(NSData *data, NSURLResponse *response, NSError *error){
if (!error) {
NSError *jsonError = nil;
id result = [NSJSONSerialization JSONObjectWithData:data options:0 error:&jsonError];
if ([result isKindOfClass:[NSDictionary class]] && !jsonError) {
NSMutableArray *tempArray = [NSMutableArray array];
for (NSDictionary *jsonPost in [result objectForKey:@"data"]) {
DVVPost *post = [[DVVPost alloc] initWithJSONData:jsonPost];
[tempArray addObject:post];
}
allPosts = [NSArray arrayWithArray:tempArray];
}
NSURL *paginationURL = [self getPaginationURLFromResult:result];
if (paginationURL) {
[self fetchAllPostsFromURL:paginationURL success:^(NSArray *posts) {
allPosts = [allPosts arrayByAddingObjectsFromArray:posts];
success(allPosts);
}];
} else {
success(allPosts);
}
} else {
NSLog(@"error: %@", [error localizedDescription]);
}
}];
[dataTask resume];
}
这是可行的,但需要相当多的时间。如我所见,每秒有2-3个请求,每个请求给我20张照片
我怎样才能更快
API:使请求
异步
,以便它们在后台运行和更新。@Dan我怎么做?现在,要运行下一个请求,我需要当前请求的一个带有分页URL的响应。我可以将照片一部分一部分地添加到屏幕上,但我需要对它们进行排序,我不确定这是否会比加载指示器更好。