let saveNewItem = SaveNewItem()
print(saveNewItem)
if saveNewItem != nil {
print("Contains a value!")
_ = UIApplication.shared.keyWindow!.rootViewController
self.present(saveNewItem, animated: true, completion: nil)
} else {
print("Doesn’t contain a value.")
}
我收到了臭名昭着的致命错误:在打开一个可选值时意外地发现了nil
在我的saveNewItem声明中,这是对另一个viewcontroller的调用:来自调用它的主要的SaveNewItem。
我很困惑,当print语句声明它在声明中有值存储时,为什么返回nil。
绕过我想要继续进行的过程是检查(cmd + click)它在控制台我的print语句中重现的saveNewItem常量,这给出了它创建一个对象的印象。
我还尝试使用故事板链接viewcontroller,如下所示: How to connect ViewController.swift to ViewController in Storyboard?
答案 0 :(得分:0)
可能,你的SaveNewItem()方法返回nil。 试试这个: saveNewItem? = SaveNewItem() 的println(saveNewItem?)
它会返回nil吗?
答案 1 :(得分:0)
找到一种方法让它无错误地工作。创建类对象saveNewItem后必须调用这些属性。我忽略了SaveLookItems类具有属性:
var itemImage : UIImage!
var imageOrigin : NSString!
var itemType : NSString!
要求初始值不是nil否则我会得到致命错误:意外地发现没有。
所以它现在适用于:
let saveNewItem = SaveNewItem()
print(saveNewItem)
if saveNewItem != nil {
print("Contains a value!")
saveNewItem.itemImage = image
saveNewItem.itemType = "topItem"
saveNewItem.imageOrigin = "Camera"
_ = UIApplication.shared.keyWindow!.rootViewController
self.present(saveNewItem, animated: true, completion: nil)
} else {
print("Doesn’t contain a value.")
}