parse containsIn查询什么都不返回

时间:2016-03-21 11:03:01

标签: arrays swift parse-platform

以下是我的代码:

var food = [chicken, fish, duck, pork]

var recipeNames = [String]()
var recipePictures = [UIImage]()


func getRecipes() {

    let getRecipesQuery = PFQuery(className: "recipes")

    getRecipesQuery.whereKey("food", containedIn: food)

    getRecipesQuery.findObjectsInBackgroundWithBlock { (recipes, error) -> Void in

        if let recipes = recipes {

            self.recipeNames.removeAll(keepCapacity: true)
            self.recipePictures.removeAll(keepCapacity: true)

            for recipe in recipes {

                self.recipeNames.append(recipe["name"] as! String)

                if let recipePictureFile = recipe["pictureFile"] as? PFFile {

                    recipePictureFile.getDataInBackgroundWithBlock({ (imageData, error) -> Void in

                        if error == nil {

                            if let picture = UIImage(data: imageData!) {

                                self.recipePictures.append(picture)
                            }
                        }
                    })
                }
            }
        }

        print(self.recipeNames.count)

        print(self.recipePictures.count)
    }
}

我在末尾打印了两个数组计数以检查是否有任何提取,计数都是0.任何想法为什么会发生这种情况?课堂上肯定有一些关键词" food"等于"食物中的一个物体"阵列,谢谢!

修改

func getRecipes() {

    let getRecipesQuery = PFQuery(className: "recipes")

    getRecipesQuery.whereKey("food", containedIn: food)

    getRecipesQuery.findObjectsInBackgroundWithBlock { (recipes, error) -> Void in

        if let recipes = recipes {

            self.recipeNames.removeAll(keepCapacity: true)
            self.recipePictures.removeAll(keepCapacity: true)

            for recipe in recipes {

                self.recipeNames.append(recipe["name"] as! String)

                if let recipePictureFile = recipe["pictureFile"] as? PFFile {

                    recipePictureFile.getDataInBackgroundWithBlock({ (imageData, error) -> Void in

                        if error == nil {

                            if let picture = UIImage(data: imageData!) {

                                self.recipePictures.append(picture)
                            }
                        }
                    })
                }
            }

            dispatch_async(dispatch_get_main_queue()) {

                self.recipesTableView.reloadData()
            }
        }
    }
}

0 个答案:

没有答案