如何从按钮追加到结构

时间:2016-07-11 16:48:00

标签: swift

我有一个结构,并创建了一个按钮,我想在其中编写一些东西然后将写入附加到我的结构中。 我在如何编写正确的代码方面遇到了麻烦,因此我将按钮中的文本正确附加到我的结构中。

这是我的结构:

 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()

2 个答案:

答案 0 :(得分:0)

你的问题在于尝试在数组中添加一个简单的字符串,在该数组中应创建结构的新实例并添加它。由于你有1个字符串并且struct需要2,所以它不清楚它应该如何工作,但它是这样的:

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

答案 1 :(得分:0)

您必须创建结构Candy的实例,以便将其添加到candies类型的数组Candy中,就像这样:

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

在上文中,我想您要将textField!.text!保存为Candy中的名称属性,但您可以根据需要进行更改。

我希望这可以帮到你