我试图在尝试从后台提取图像之前检查PFFile是否有数据。我正在尝试这个,因为如果你试图打开其中一个物体并且没有图像,我会继续致命的崩溃!我的问题是我无法进行数据检查。 PFFile != nil
不起作用,您无法检查它是否与if (recipeImageData)
一起存在,因为PFFile不符合布尔协议。任何帮助将不胜感激!
以下是变量的声明:
var recipeImageData: PFFile = PFFile()
以下是获取数据的功能:
override func viewWillAppear(animated: Bool) {
navItem.title = recipeObject["Name"] as? String
recipeImageData = recipeObject["Image"] as PFFile //Fatally crashes on this line
// Fetch the image from the background
if (recipeImageData) {
recipeImageData.getDataInBackgroundWithBlock({
(imageData: NSData!, error: NSError!) -> Void in
if error == nil {
self.recipeImage.image = UIImage(data: imageData)?
} else {
println("Error: \(error.description)")
}
})
}
}
编辑:
我只是试着看到我可能在错误的区域进行检查。这是我更新的代码。
override func viewWillAppear(animated: Bool) {
navItem.title = recipeObject["Name"] as? String
if let recipeImageData = recipeObject["Image"] as? PFFile {
// Fetch the image in the background
recipeImageData.getDataInBackgroundWithBlock({
(imageData: NSData!, error: NSError!) -> Void in
if error == nil {
self.recipeImage.image = UIImage(data: imageData)?
} else {
println("Error: \(error.description)")
}
})
}
}
答案 0 :(得分:6)
此检查实际上运行正常,还有另一个导致崩溃的问题。正确的代码发布在下面:
override func viewWillAppear(animated: Bool) {
navItem.title = recipeObject["Name"] as? String
if let recipeImageData = recipeObject["Image"] as? PFFile {
// Fetch the image in the background
recipeImageData.getDataInBackgroundWithBlock({
(imageData: NSData!, error: NSError!) -> Void in
if error == nil {
self.recipeImage.image = UIImage(data: imageData)?
} else {
println("Error: \(error.description)")
}
})
}
}