从 'NSMutableArray' 转换为无关类型“[String]”总是失败

Cast from 'NSMutableArray' to unrelated type '[String]' always fails

我正在 Swift 中编写一个 QuizApp,这段代码让我抓狂。

我在 UIViewController 之前声明了以下变量 class:

var questionsList:[String] = []
var answersList:[NSMutableArray] = []

我读了一个 .plist 文件并加载了它的内容:

    let dictRoot = NSDictionary(contentsOfFile: NSBundle.mainBundle().pathForResource("filename", ofType: "plist")!)
    questionsList = (dictRoot?.allKeys)! as! [String]
    answersList = (dictRoot?.allValues)! as! [NSMutableArray]

我有一个 generateRandomQuestion 函数,它是这样的:

func generateRandomQuestion() {
    let randomQuestionIndex = Int(arc4random() % UInt32(questionsList.count))
    randomQuestion = "\(questionsList[randomQuestionIndex])"
    answersToRandomQuestion = (answersList[randomQuestionIndex]) as! [String]

不幸的是,将 NSMutableArray 转换为 [String] 总是失败...

关于如何在不乱搞的情况下转换它的任何提示?

(我尝试了 flatMap 但它不起作用...)

非常感谢任何帮助!

除非别无选择,否则不要使用可变的 Foundation 集合类型。

使用原生 Swift 类型。

var answersList = [[String]]()
...
answersList = (dictRoot?.allValues)! as! [[String]]