2016-12-22 39 views
1

我很新,對我來說這是如此光榮。我想要做的是檢查按鈕當前是否顯示數組中的元素;數組答案。最好的路線是什麼?如何檢查按鈕的文本是否包含數組的元素?

@IBAction func qButton1(_ sender: Any) { 
    if (sender as AnyObject).currentTitle == (Answer in Answers){ 
     PickQuestion() 

    } 
    else{ 
     missedWords.append(quizLabel.text!) 

    } 
} 

回答

0

你不應該使用該按鈕的標題來存儲數據,並比較它的值。

無論何時你編寫代碼的邏輯取決於向用戶顯示的文本,你都在本地化方面痛苦地陷入了一個角落。

使用數字標籤來索引字符串數組將是一個更好的主意。

假設您創建了一個標題字符串數組。

使每個按鈕的標記爲100 +數組索引。

let startingTag = 100 

@IBAction func qButton1(_ sender: UIButton) { 
    guard let index = sender.tag where startingTag >= 100 else { 
     return 
    } 
    //fetch your string from the array of button title strings you set up. 
    let stringToFind = strings[index] 
    if answers.contains(where: {$0 == stringToFind}) { 
     //Found the current' buttons' string in answers 
    } else { 
     //string not found 
    } 

} 
1

不確定爲什麼你傳遞任何作爲發件人,然後投射到AnyObject。無論如何,我會在你的情況下使用的過濾器: 假設你有所謂的答案和解答解答對象的數組有產權

if let _ = answers.filter({ $0.title == (sender as AnyObject).currentTitle) }).first { 
    PickQuestion() 
} else{ 
    missedWords.append(quizLabel.text!) 
} 
相關問題