Objective c 同步for循环内的操作

Objective c 同步for循环内的操作,objective-c,ios7,uiimageview,synchronization,nsarray,Objective C,Ios7,Uiimageview,Synchronization,Nsarray,我正在使用QBImagePickerController库在提供的图像选择器视图中选择多个图像。 我想让用户上传一个以上的图像到主服务器,一个UIImageView显示当前上传的内容,一个UIProgressView 自 - (void)imagePickerController:(QBImagePickerController *)imagePickerController didSelectAssets:(NSArray *)assets 给我一个数组,其中包含用户选择的所有图像,我通过以

我正在使用QBImagePickerController库在提供的图像选择器视图中选择多个图像。 我想让用户上传一个以上的图像到主服务器,一个UIImageView显示当前上传的内容,一个UIProgressView

- (void)imagePickerController:(QBImagePickerController *)imagePickerController didSelectAssets:(NSArray *)assets
给我一个数组,其中包含用户选择的所有图像,我通过以下方式对其进行迭代:

NSMutableArray *IDs = [[NSMutableArray alloc] init];
if([assets count] == 1) {
    // single image, no prob.
} else {

    for(ALAsset *a in assets) {
        //set the image to the one which is uploaded right now
        //upload it through a library and tell about status with NSProgress
        //write the result into IDs
    }
}
我的问题是,如果用户选择两个图像,操作似乎同时运行,因此UIProgressView将以先到先得的方式上载,而UIImageView仅显示最后选择的图像,ID似乎为空

这种行为是由于我使用迭代数组的方法造成的吗


如何使每个操作互斥?

最有可能的情况是,库使用后台线程进行上载,同时定期更新进度视图。因此,循环只是启动所有上载,而不等待任何上载完成。库是否具有指示上载完成的机制,例如完成处理程序或委托方法?查看上载状态信息的唯一方法是通过NSProgress.Hmm,这意味着使用来监控进度并确定每次上载何时完成。我没有用过NSProgress,所以我恐怕不能再具体了。我当然在用它,否则我无法更新进度条。我会看看这个库是否使用了任何背景。