使用JSON响应

时间:2016-03-03 15:54:59

标签: ios objective-c json objective-c-blocks background-process

我需要一些帮助才能找出一些逻辑/最佳方法。

我有一个上传图片的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
}];

如何逐步浏览每张照片并上传?

1 个答案:

答案 0 :(得分:0)

如果您只有少量照片 - 为什么不为每个照片创建单独的后台任务,并根据需要重试?完成后您将需要更新数据模型 - 成功或失败 - 但您不必担心依次处理每个数据模型

取决于您希望如何处理重试,可能是这样的......

if