我已经在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)")
}
仍然无法运作
答案 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,则会出现运行时错误,如您所见