我有一个结构,并创建了一个按钮,我想在其中编写一些东西然后将写入附加到我的结构中。 我在如何编写正确的代码方面遇到了麻烦,因此我将按钮中的文本正确附加到我的结构中。
这是我的结构:
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 :(得分: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
中的名称属性,但您可以根据需要进行更改。
我希望这可以帮到你