在我的应用程序中,我有一个tableview,用于加载用户的评论。在解析中,我有一个“评论”类。在这个类中有一个图像列(称为“图像”和单词中的注释列(称为“theComment”)。
要提交评论,用户必须在文本框中输入内容(所有评论必须包含文字)。但是,并非所有评论都必须有与之关联的图像(用户可以选择不发布图像)。这是我当前检索评论的代码:
var query6 = PFQuery(className: "Comments")
query6.whereKey("to_post", equalTo: post!)
query6.findObjectsInBackgroundWithBlock({ (caption: [AnyObject]?, erreur: NSError?) -> Void in
if erreur == nil {
// on a réussi
for caption in caption! {
self.newArray.append(caption["theComment"] as! String)
self.commentPhotoArray.append(caption["images"] as! PFFile)
}
self.tableView.reloadData()
}
else {
// on n'a pas réussi
}
})
但问题是这一行:
self.commentPhotoArray.append(caption["images"] as! PFFile)
说“在展开可选值时意外发现nil”,因为并非保存的所有注释都包含相关图像。有没有办法解决?我尝试设置它,以便如果用户没有手动上传照片,它会保存我导入到我的图像资产的虚拟图像,而这可以工作,只要我解开图像数据(在cellforRowatIndexPath中)它识别虚拟图像并将图像视图约束的高度适当地设置为0(换句话说,不显示图像),只留下要显示的注释。关于如何解决这个问题的任何想法?
答案 0 :(得分:0)
您可以尝试在打开它之前检查是否有可用的图像。我无法轻松测试此代码,因此如果您可以看到是否存在错误的错误。
if caption["images"] != nil {
self.commentPhotoArray.append(caption["images"] as! PFFIle)
}
答案 1 :(得分:0)
试试这个:
var query6 = PFQuery(className: "Comments")
query6!.whereKey("to_post", equalTo: post!)
query6!.findObjectsInBackgroundWithBlock {
(objects: [AnyObject]?, error: NSError?) -> Void in
if error == nil {
print("Successfully retrieved \(objects!.count) scores.") // This will print how many objects are in your Class.
if (objects!.count > 0) {
for caption in objects! {
self.newArray.append(caption["theComment"] as! String)
self.commentPhotoArray.append(caption["images"] as! PFFile)
}
self.tableView.reloadData()
} else {
// Log details of the failure
print("Error: \(error!) \(error!.userInfo)")
}
}
}
我也不得不说,我印象中有人用法语编码...如果那是你或其他人的话,我很高兴,但很酷;)