2016-07-11 25 views
0

我有一個結構,並創建了一個按鈕,我想寫一些東西,然後將寫入附加到我的結構。 我遇到了如何編寫正確的代碼,以便將正確的文本從按鈕添加到我的結構中。如何追加到一個按鈕的結構

這裏是我的結構:

struct Candy{ 
    let category : String 
    let name : String 
} 

candies = [ 
    Candy(category:"test", name:"test 2"), 
    Candy(category:"test", name:"test 4"), 
    Candy(category:"test", name:"test 1"), 
    Candy(category:"Music", name:"J-cole"), 
    Candy(category:"Music", name:"Jay-z"), 
    Candy(category:"Music", name:"Coldplay"), 
    Candy(category:"Other", name:"Sophie"), 
    Candy(category:"Other", name:"Frederic"), 
    Candy(category:"Other", name:"test")] 

    } 

這是我的按鈕的代碼:

@IBAction func addBar(sender: AnyObject) { 

    let alert = UIAlertController(title: "New name", 
            message: "Write name", 
            preferredStyle: .Alert) 

    let saveAction = UIAlertAction(title: "Save", 
            style: .Default, 
            handler: { (action:UIAlertAction) -> Void in 

            let textField = alert.textFields!.first 

            self.candies.append(textField!.text!) // I have troubles with this line... not sure how to make this line correct.. 


            self.tableView.reloadData() 
+0

這不是一個結構,它是'Candy'的Structs,一個'Array'書面:'陣列'或'[糖果]'的簡稱。 – Alexander

+0

有什麼問題? – Alexander

+1

備註:'category'可能會比'enum'更好。請參閱關於'enum'的語言指南部分。 – Alexander

回答

0

你必須以將其添加到創建結構Candy的一個實例Candy類型的數組candies,像這樣:

self.candies.append(Candy(category:"NameYouWant", name: textField!.text!)) 

在上面,我想你想的了textField!.text!保存作爲Candy name屬性,但只要你想,你可以改變它。

我希望這可以幫助您

+0

我現在得到一個新的錯誤:這個類不是關鍵值編碼兼容的關鍵addBar。' – Frederic

+1

你已經試驗了另一個與你所問的問題截然不同的錯誤,看到這個答案http://stackoverflow.com/questions/3088059/what-does-this-mean-nsunknownkeyexception-reasonthis-class-is-not-key- VALU –

0

您的問題行正試圖簡單的字符串添加到數組,其中是應該建立一個你的結構的新實例並添加。這是不完全清楚應當如何工作的,你有1串和結構需要2,但它是這樣的:

self.candies.append(Candy(category: "xxx", name: textField!.text!))