【发布时间】:2015-08-06 19:24:59
【问题描述】:
我目前在移植现有 Swift 应用程序以使其在 iOS9 上运行方面处于领先地位。不幸的是,我在尝试运行该应用程序时遇到了运行时错误,该应用程序目前适用于 Xcode 6 和 Swift 1.x。使用此代码:
let checkedImage: UIImageView = {
let image = UIImage(named: "checkbox-checked.png")!
let tintImage = image.imageWithRenderingMode(.AlwaysTemplate)
let view = UIImageView(image: tintImage)
view.sizeToFit()
return view
}()
我收到以下错误,这发生在UIImageView 的构造函数上:Thread 1: EXC_BAD_ACCESS (code=2, address=0x177d80)
我不知道这是否是一个测试版错误。
编辑:这是从 Xcode 7 beta 5 开始发生的。
编辑 2:看起来 UIImageView 对原始图像没问题。看起来它已缩小到imageWithRenderingMode。
【问题讨论】:
-
1) 检查名称为 checkbox-checked.png 的图像是否存在 2) 注释掉除“let view = UIImageView(image: tintImage)”和“return view”之外的所有行。它会给出错误吗?如果不是,则逐一注释其他行,直到找到导致应用程序崩溃的行。然后让我们知道是哪一行
-
@AndriyGordiychuk 正如我所提到的,
UIImageView的实例化发生了错误。同样正如我所说,代码在 Xcode 6 中运行良好。 -
可以上传源代码吗?由于您调用 .checkedImage 的位置,可能会发生此错误。此外,检查 tintImage 是否为 nil 仍然是一个好主意。也许某些连接没有在 Xcode 7 中加载,并且您的 UIImage 为 nil
-
不幸的是,我无法传递完整的源代码。
tintImage不是nil,但原图似乎还可以。更新/编辑注释imageWithRenderingMode。 -
你找错地方了。
imageWithRenderingMode没有任何变化。返回第一行并修复它。重写您的代码,使 没有感叹号。
标签: xcode swift uiimageview swift2 xcode7