我需要一些帮助才能找出一些逻辑/最佳方法。
我有一个上传图片的iOS应用。我有一台服务器在每张图片上传后都会响应 成功 或 失败 。
如果我有5张图片等待上传(可能没有互联网访问,或者用户只想上传WIFI),我需要一种方法来单独上传每张图片,等待该图片成功或失败,(失败将再次尝试)然后继续下一张图片,所有这些都在后台线程上,以便用户可以继续工作。
现在我已准备好大部分排队逻辑。我遇到问题的问题是单独进行每张图片,获得JSON响应(成功||失败)然后继续下一步。
我目前使用:
if (photoQueue.count > 0) {
for (int i = 0; i < photoQueue.count; i++) {
if([self processPhoto:[photoQueue objectAtIndex:i]]){
[photoQueue removeObjectAtIndex:i];
} else {
NSLog(@"PHOTO UPLOAD FAILED");
}
}
}
过程照片返回bool
的位置,但这不能正常工作,似乎会复制照片或完全错过照片。
我已经玩弄了BLOCKS的想法,在那里进行照片上传并解析json响应并将其作为返回BOOL传回。但是我不太了解它们可以逐步浏览很多照片。
[self doPhotoUpload:^(BOOL succeeded, NSError *error) {
//Do the photo upload here and parse the json response and pass that as the return BOOL
}];
如何逐步浏览每张照片并上传?
答案 0 :(得分:0)
如果您只有少量照片 - 为什么不为每个照片创建单独的后台任务,并根据需要重试?完成后您将需要更新数据模型 - 成功或失败 - 但您不必担心依次处理每个数据模型
取决于您希望如何处理重试,可能是这样的......
if