Uitableview Can';t展开可选。无。我能';我不知道怎么做或做什么

Uitableview Can';t展开可选。无。我能';我不知道怎么做或做什么,uitableview,swift,Uitableview,Swift,我已经在这里查阅了多页关于堆栈溢出的内容,但我无法悲伤地对此进行思考。也许是因为天气热。不知道。不管怎样,谁能帮我解释一下如何打开包装 它在以下时间中断: self.txt = dict.valueForKey("menuPunkt") as NSMutableArray! 在: 更新 仍然不起作用您的dict.valueForKey(“menuPunkt”)返回一个可选的NSMutableArray,您正在用该行末尾的感叹号展开该数组。如果您更优雅地展开它,您可以处理dict不包含“menu

我已经在这里查阅了多页关于堆栈溢出的内容,但我无法悲伤地对此进行思考。也许是因为天气热。不知道。不管怎样,谁能帮我解释一下如何打开包装

它在以下时间中断:

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

更新


仍然不起作用

您的
dict.valueForKey(“menuPunkt”)
返回一个可选的
NSMutableArray
,您正在用该行末尾的感叹号展开该数组。如果您更优雅地展开它,您可以处理
dict
不包含
“menuPunkt”
值的情况:


您得到该错误是因为您调用的方法返回了
nil
。当你使用!使用该方法返回的可选变量(可以是nil的变量),基本上可以断言对象不是nil。如果对象为零,您将看到运行时错误,就像您看到的一样

我建议您观看
intermediate Swift
WWDC视频的前20分钟,它将为您清除所有问题,我保证!它撞在哪条线上?确切的错误消息是什么?@AlexWayne请看上面的编辑嗯,如果我使用你的代码,当我运行应用程序时,它不会被读取?我需要在某处调用if语句还是使用textary而不是txt?对不起,我在那里使用了
self.text
而不是
self.txt
。无法读取它,因为
hovedMenu.plist
没有
“menuPunkt”
键的值。这就是为什么你以前也会出错。检查.plist文件以确保它包含您要查找的内容。或者它根本找不到.plist文件-请在加载
NSDictionary
后立即尝试调试,并确保得到您所期望的内容。这是一个完全不同的问题!)让我们。
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)")
    }
if let textArray = dict.valueForKey("menuPunkt") as? NSMutableArray {
    self.txt = textArray
} else {
    // give self.text some sort of default value
}