【问题标题】:Swift fatal error: unexpectedly found nil while unwrapping an Optional value uiimageSwift 致命错误:在展开可选值 uiimage 时意外发现 nil
【发布时间】:2014-10-20 16:57:19
【问题描述】:

将 UIImage 分配给 UIImageView 的属性图像时出错

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 请求的委托函数。 backgroundImageDataimage不是零,但它不起作用,我不明白。

我是 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];

【问题讨论】:

  • 你真的需要开始使用 swift 来充分发挥它的潜力。如果您可能并不总是有您应该使用的图像:if let image = UIImage(data: backgroundImageData) { self.backgroundImage.image = image } 如果图像绝对不是零,那么我只能建议您尝试不调用 var 图像?在以前的 Xcode 测试版中,我偶尔会遇到将变量命名为与属性相同的问题。
  • 这是一个问题,在 XCode 6.1 之前,初始化程序无法返回可选值,并且您在这里使用了两个不同的初始化程序,用于数据和图像。我会尝试立即使用 as Data?as UIImage? 将这些转换为可选项,然后看看你会得到什么。
  • 登录图像时会打印什么?您是否将图像视图正确添加为子视图?检查 backgroundImage 的框架。检查它的superview。你把它正确连接了吗?你检查过它是否是正确的 URL 吗?为背景视图着色以确保它被正确添加并具有正确的大小。请说明您是如何设置 backgroundImage 属性的。

标签: ios swift uiimageview uiimage


【解决方案1】:

数据很好,图像不为零。错误不在此处的代码上,而是在请求完成的地方。 请求需要一个委托对象,我以为我给了它控制器,但它不是控制器实例,HomeController() à la place de self 我的坏^^”

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-30
    • 2015-03-04
    • 1970-01-01
    相关资源
    最近更新 更多