解包时发现图像视图为零

时间:2016-02-26 23:12:14

标签: ios swift null imageview

我有一张从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

}

2 个答案:

答案 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 

我偶然就这样离开了,并且在此之前运行的功能就是这样。