无法打开Optional.None。我无法弄清楚如何或是什么

时间:2014-06-09 17:01:44

标签: uitableview swift

我已经在Stack Overflow上查看了多个页面,并且无法忘记我的头。也许它的热度。不知道。无论如何,有人可以帮我解释如何解开吗?

它打破了:

self.txt = dict.valueForKey("menuPunkt") as NSMutableArray!

在:

var dict1: NSMutableArray = NSMutableArray()
var txt: NSMutableArray = NSMutableArray()
var dict: NSDictionary = NSDictionary()

override func viewDidLoad() {
    super.viewDidLoad()
    let path = NSBundle.mainBundle().pathForResource("hovedMenu", ofType: "plist")
    self.dict = NSDictionary(contentsOfFile: path)
    self.txt = dict.valueForKey("menuPunkt") as NSMutableArray!
    self.tableView.registerClass(UITableViewCell.self, forCellReuseIdentifier: "cell")
}

更新

 let textArray = dict.valueForKey("menuPunkt") as? NSMutableArray
    if let textArray = dict.valueForKey("menuPunkt") as? NSMutableArray {
        self.txt = textArray
        println("txt\(txt)")
    } else {
        println("txt\(txt)")
    }

仍然无法运作

2 个答案:

答案 0 :(得分:2)

您的dict.valueForKey("menuPunkt")会返回一个可选的NSMutableArray,您可以使用该行末尾的惊叹号解包该dict。如果您更优雅地打开它,则可以处理"menuPunkt"不包含if let textArray = dict.valueForKey("menuPunkt") as? NSMutableArray { self.txt = textArray } else { // give self.text some sort of default value } 值的条件:

{{1}}

答案 1 :(得分:0)

您收到该错误,因为您调用的方法正在返回nil。当你使用!使用该方法返回的可选变量(一个可以为nil的变量),您基本上断言该对象不是nil。如果对象为nil,则会出现运行时错误,如您所见