我有一张从Parse下载并加载到图像视图中的图像。当我这样做时,我得到以下错误(包括图像打印显示存在):
<UIImage: 0x13707c950>, {2045, 2588}
fatal error: unexpectedly found nil while unwrapping an Optional value
绝对是联系起来的。我尝试过清理,重新启动Xcode,删除视图和图像并重新制作。我有一个与此类似的伴侣项目,并使用相同的代码(在一个单独的方法中我将PFFile转换为图像)。我也知道这种方法有效,因为在项目的另一部分我以这种方式加载图像。
if let image = objectsKeyValues[indexNumber]["image"] {
print(image)
sALargeNoteImage.imageView.image = image as? UIImage
sALargeNoteImage.imageView.contentMode = UIViewContentMode.ScaleAspectFit
}
我不能为我的生活弄清楚发生了什么。我在故事板上做了大量的改造工作,即使在一次重构时也是如此。这可能表明它与Xcode相关(正如我已经读过的那样)与#34;混淆了#34;。我不确定接下来应该尝试什么,不能重新制作故事板(这将是很多工作)。我想我可以重新制作它并复制粘贴代码..
有人有什么想法吗?我没有使用模拟器,而是将其加载到iPad上。我尝试删除并重新安装该应用程序。
从错误中突出显示的部分是:
sALargeNoteImage.imageView.image = image as? UIImage
更新
var sALargeNoteImage = SALargeNoteImage()
class SALargeNoteImage: UIViewController {
@IBOutlet weak var imageView: UIImageView!
override func viewDidLoad() {
super.viewDidLoad()
sALargeNoteImage = self
}
答案 0 :(得分:0)
由于您使用简单的sALargeNoteImage
创建init
,因此它不会连接到情节提要中的任何商店。
您需要使用类似
的内容let storyboard = UIStoryboard(name: "Main", bundle: nil)
let sALargeNoteImage=storyboard.instantiateViewControllerWithIdentifier("largeNoteViewController") as! SALargeNoteImage
为了实例化视图控制器并链接所有IBOutlet
我强烈建议您避免使用var someVariable=SomeType()
,如果您要做的就是从编译器中抑制属性必须初始化的错误,并且您打算稍后正确初始化属性。使用var someVariable:SomeType!
要好得多,因为如果您忘记为属性分配值而不是导致使用默认值的模糊错误,这将引发异常。
答案 1 :(得分:0)
有一次我在测试时是否会在我设置时清除图像:
lSLargeNoteImage.imageView = nil
vs
lSLargeNoteImage.imageView.image = nil
我偶然就这样离开了,并且在此之前运行的功能就是这样。