如何处理空PFFile对象(Parse后端,Swift)

时间:2017-04-02 06:56:07

标签: ios swift parse-platform

我有一个存储在Parse(后端)上的用户列表,其中有一个名为“profile_picture”的列,用于存储用户的个人资料图片。但是,某些用户没有个人资料图片,因此他们的profile_picture列是“未定义”(没有值)。

我正在使用搜索栏查询所有用户,并使用用户的个人资料照片和用户名更新tableview。我这样做是通过将用户名附加到var searchResults = String,并在查询后将配置文件pic添加到var searchImages = PFFile,如下所示:

            let query = PFQuery.orQuery(withSubqueries: [usernameQuery!,fbUsername!, firstnameQuery!, lastnameQuery!]);

        searchActive = true;

        query.findObjectsInBackground { (objects, error) in

            if error != nil {

                print("There was an error getting userlist");

            }

            else {

                if let users = objects {

                    self.searchResults.removeAll(keepingCapacity: false);

                    for object in users {

                        if let user = object.object(forKey: "username") as? String {

                            self.searchResults.append(user);
                        }

                        if let picture = object.object(forKey: "profile_picture") as? PFFile {

                            self.searchImages.append(picture);

                        }

                        self.searchTableView.reloadData();

                    }

问题是当“profile_picture”列为空时,它不会附加任何内容,这意味着searchResults数组(包含用户名)和searchImages数组(包含PFFiles)具有不同的大小,这导致不协调价值分配。它们应该是并行数组。我正在使用这些数组中的值来分配表格单元格中的值。

希望你们明白我的问题!提前致谢

1 个答案:

答案 0 :(得分:0)

所以你的username字段绝对不是空的。我想您可以在检查else是否为零后添加profile_picture。像:

if let picture = object.object(forKey: "profile_picture") as? PFFile {
    self.searchImages.append(picture);
} else {
    self.searchImages.append(UIImage(named:"placeholder"))
}