我有一个存储在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)具有不同的大小,这导致不协调价值分配。它们应该是并行数组。我正在使用这些数组中的值来分配表格单元格中的值。
希望你们明白我的问题!提前致谢
答案 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"))
}