swift 中无法赋值错误

Cannot assign values error in swift

我正在摆弄 table 视图,但我遇到了错误 无法将 'Answer' 类型的值分配给“[Answer]”类型的值

答案是 class,定义如下:

class Answer {
var EnglishAnswer: String = ""
var ChineseAnswer: String = ""
init(newEng: String, newChi: String){
    self.EnglishAnswer = newEng
    self.ChineseAnswer = newChi
}


}

而且我 运行 遇到了 prepareforsegue 方法中的问题:

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    let indexpath: NSIndexPath = self.tableView.indexPathForSelectedRow!
    var DestinationViewController = segue.destinationViewController as! AnswerTableViewController
    var ArrayofArrayswithAnswerElementsTwo : Answer
    var ArrayofArrayswithAnswerElements = levelsArray.map( { [=12=].AnswersArray })
    ArrayofArrayswithAnswerElementsTwo = ArrayofArrayswithAnswerElements[indexpath.row]
    DestinationViewController.ArrayofArrayswithAnswerElements = ArrayofArrayswithAnswerElementsTwo

}

错误清楚地表明您正在尝试将 Answer 个对象的数组分配给声明仅包含 Answer 个对象的变量。

此变量用于保存 Answer 对象:

var ArrayofArrayswithAnswerElementsTwo : Answer

而且我怀疑这条线正在重新调整 Answer 个对象的数组:

ArrayofArrayswithAnswerElementsTwo = ArrayofArrayswithAnswerElements[indexpath.row]

您需要在 prepareForSegue 函数中设置断点、检查模型、打印对象并检查正确的赋值。

解决方案:您的问题可能有 2 种解决方案:

首先,这样定义ArrayofArrayswithAnswerElementsTwo

var ArrayofArrayswithAnswerElementsTwo : [Answer]

其次,使ArrayofArrayswithAnswerElements[indexpath.row]变为returnAnswer而不是[Answer]

PS:您的变量命名约定与行业惯例不同步。变量名应以小写字母开头,并应尽可能短。