Ios Swift致命错误:在展开可选值uiimage时意外发现nil
将UIImage分配给UIImageView的属性映像时出错Ios Swift致命错误:在展开可选值uiimage时意外发现nil,ios,swift,uiimageview,uiimage,Ios,Swift,Uiimageview,Uiimage,将UIImage分配给UIImageView的属性映像时出错 func connectionDidFinishLoading(connection: NSURLConnection!) { var err: NSError var jsonResult : NSDictionary = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.MutableContainers, error: n
func connectionDidFinishLoading(connection: NSURLConnection!) {
var err: NSError
var jsonResult : NSDictionary = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.MutableContainers, error: nil) as NSDictionary
println("\(jsonResult)")
if jsonResult.count > 0 {
let homepage = jsonResult.objectForKey("homepage") as NSMutableDictionary
if homepage.count > 0 {
let imageUrl = homepage.objectForKey("url_img") as NSString
let backgroundImageUrl = NSURL.URLWithString(imageUrl)
let backgroundImageData = NSData(contentsOfURL: backgroundImageUrl)
var image :UIImage = UIImage(data: backgroundImageData)
println("\(image)")
self.backgroundImage.image = image
}
}
}
它是来自get请求的委托函数。
backgroundImageData
和image
不是零,但它不工作,我不明白
我是Swift:s的新手
此代码与objective-C一起工作
NSString *imageUrl = [metaData objectForKey:@"url_img"];
NSURL *backgroundImageUrl = [NSURL URLWithString:imageUrl];
NSData *backgroundImageData = [NSData dataWithContentsOfURL:backgroundImageUrl];
self.backgroundImage.image = [UIImage imageWithData:backgroundImageData];
数据是好的,图像不是零。错误不在这里的代码上,而是在完成请求的地方。 请求需要一个委托对象,我以为我给了它一个控制器,但它不是控制器实例,HomeController()
我的错^^“你真的需要开始充分发挥swift的潜力。如果你可能不总是有图像,你应该使用:
如果让image=UIImage(数据:backgroundImageData){self.backgroundImage.image=image
}如果image肯定不是nil,那么我所能建议的就是不要调用var image?在以前的Xcode beta中,我偶尔会遇到将变量命名为与属性相同的问题。在Xcode 6.1之前,初始化器无法返回可选值,并且您在这里使用两个不同的初始化器,用于这两种情况数据和图像。我会尝试立即将它们转换为带有作为数据?
和作为UIImage?
的选项,然后查看您得到了什么。当您记录图像时,它会打印什么?您是否正确地将图像视图添加为子视图?检查背景图像的框架。检查它的superview。您是否正确地连接了它?您是否已使用c检查它是否是正确的Url?为backgroundview添加颜色,以确保添加正确且大小正确。请显示如何设置backgroundImage属性。