我有一个奇怪的问题。我的应用程序在iPhone 6模拟器中工作正常,但在任何其他模拟器或我的iDevice上都没有。这是主要代码
query.findObjectsInBackgroundWithBlock {
(objects, error) -> Void in
if(error == nil){
let imageObjects = objects as! [PFObject]
if let myObjects = objects {
for object in myObjects {
let myTitle = object["imageName"] as! NSString
println(myTitle)
let thumbNail = object["imageFile"] as! PFFile
// println(thumbNail)
thumbNail.getDataInBackgroundWithBlock({
(imageData: NSData?, error: NSError?) -> Void in
if (error == nil) {
self.imageArray.append(imageData!)
let image = UIImage(data:imageData!)
self.imageView.contentMode = .ScaleAspectFit
self.imageView.image=image
}
})//getDataInBackgroundWithBlock - end
}//for - end
}
}//end of if
else{
println("Error in retrieving \(error)")
}
}//findObjectsInBackgroundWithblock - end
我认为这条线是罪魁祸首
let image = UIImage(data:imageData!)
但我不确定为什么。除了iPhone 6仿真器之外,“image”在所有其他设备中返回nil。任何建议都会很棒。 感谢
注意:图像在iPhone 6模拟器中显示得很好。我正在使用故事板和未经检查的自动布局。
答案 0 :(得分:0)
应该不存在应用程序仅适用于一个模拟器设置的情况。重置模拟器应该可以解决问题。
答案 1 :(得分:0)
一种可能性是您之前已成功下载此数据,而Parse已在您的iPhone应用程序中缓存了响应,但您已远程更改了PFObject并删除了图像数据。或者可能更改了代码。
由于Parse.com会缓存图片,因此Parse.com缓存可能仅适用于此设备。
您可以使用调试器,或者更糟糕的是,使用NSLog来确定什么是nil。您需要确定imageData
是否回来为零。另外,你有没有理由认为imageData是非空的?我指的是对imageData!
的引用 - 这似乎很危险。仅仅因为没有错误并不意味着imageData
是非空的。