簡體   English   中英

無法快速分配值錯誤

[英]Cannot assign values error in swift

我正在擺弄表格視圖,但遇到錯誤無法將“Answer”類型的值分配給“[Answer]”類型的值

答案是一個具有以下定義的類:

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( { $0.AnswersArray })
    ArrayofArrayswithAnswerElementsTwo = ArrayofArrayswithAnswerElements[indexpath.row]
    DestinationViewController.ArrayofArrayswithAnswerElements = ArrayofArrayswithAnswerElementsTwo

}

錯誤清楚地表明您正試圖將Answer對象數組分配給一個聲明為僅保存Answer對象的變量。

此變量用於保存Answer對象:

var ArrayofArrayswithAnswerElementsTwo : Answer

我懷疑這一行正在重新調整一系列Answer對象:

ArrayofArrayswithAnswerElementsTwo = ArrayofArrayswithAnswerElements[indexpath.row]

您需要放置一個斷點,檢查您的模型,打印對象並檢查您的prepareForSegue函數中的正確分配。

解決方案:您的問題可能有兩種解決方案:

首先,像這樣定義ArrayofArrayswithAnswerElementsTwo

var ArrayofArrayswithAnswerElementsTwo : [Answer]

其次,ArrayofArrayswithAnswerElements[indexpath.row]返回Answer而不是[Answer]

PS:變量的命名約定與行業慣例不同步。 變量名應以小寫開頭,並應盡可能短。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM