2016-07-11 1 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

Это не структура, что это '' Array' из Candy' структур, написанный как: '' Массив или '[Конфеты]' для краткости. – Alexander

+0

В чем проблема? – Alexander

+1

Боковое примечание: 'category', вероятно, будет лучше, чем' enum'. См. Раздел руководства по языку 'enum'. – Alexander

ответ

0

Вы должны создать экземпляр структуры Candy для того, чтобы добавить его к массив candies типа Candy, как таким образом:

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

в выше, я полагаю, вы хотите, чтобы сохранить textField!.text! как свойство имени в Candy, но вы можете изменить его, как вы хотите.

Я надеюсь, что это поможет вам

+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!)) 
Смежные вопросы