异步任务完成后加载 PageViewController

Load PageViewController After Asynchronous Task Complete

我在异步调用完成后加载 PageViewController 时遇到问题。我正在考虑使用 NSNotification,但不确定什么是最好的方法。

获取图像的异步函数

func fetchArrayImages() {
    var query = PFQuery(className: "FoodPhoto")
    query.orderByDescending("Votes")
    query.findObjectsInBackgroundWithBlock ({(objects:[AnyObject]!, error: NSError!) in
        if(error == nil){
            let imageObjects = objects as [PFObject]
            for object in objects {
                let photoUploaded = object["PhotoUploaded"] as PFFile
                photoUploaded.getDataInBackgroundWithBlock({
                    (imageData: NSData!, error: NSError!) -> Void in
                    if (error == nil) {
                        let image = UIImage(data:imageData)
                        //image object implementation
                        self.photosUploadedArray.append(image!)
                    }
                })
            }
        }
        else{
            println("Error in retrieving \(error)")
        }
    })
}

异步下载图片后调用的函数

这会加载 UIPageViewController

func loadPhotosFromArray() {
    var array = photosUploadedArray
    view1 = PhotoCollevtionView(outerFrame: self.view.frame, photoArray: array, currentNumber: 0)
    self.view.addSubview(view1!)
}

您可以检查上传的图片是否与 imageObjects 数组中的最后一张图片相同,在这种情况下,您可以这样调用 loadPhotosFromArray() 代码:

self.photosUploadedArray.append(image!)
if ( imageObjects.last.isEqual(image!)) { //Use this code
    loadPhotosFromArray()
 }