我有一个警告弹出窗口,其中textField请求用户输入数据。我终于得到了textField来将数据转换到我需要的地方,但是我不能再保存这个项了。如果alertAction没有附加处理程序函数,我可以毫无问题地调用save func。现在我已经拥有"设置"动作从文本字段转换数据,它将不再允许我调用该函数。它给出了错误"表达式解析为未使用的函数"。并且,出于某种原因,它希望我拥有自己。在所有数据之前...查看代码。
AlertController:
@IBAction func saveButton(sender: AnyObject) {
if (item?.slminqty == nil) {
let alert = UIAlertController(title: "Minimun Qty", message: "Please set minimun Qty. for pantry.", preferredStyle: UIAlertControllerStyle.Alert)
alert.addTextFieldWithConfigurationHandler { (textField: UITextField!) -> Void in
textField.placeholder = "Minimun Qty."
textField.keyboardType = .NumbersAndPunctuation
textField.clearButtonMode = UITextFieldViewMode.WhileEditing
}
alert.addAction(UIAlertAction(title: "Dismiss", style: UIAlertActionStyle.Default, handler: {saveitem}()))
alert.addAction(UIAlertAction(title: "Set", style: UIAlertActionStyle.Default, handler: {(action) -> Void in
let textField = alert.textFields![0].text!
self.item?.slminqty = textField
if self.item?.slminqty != nil{
//if I place saveitem here it wants self.saveitem and gives error.
}
}))
self.presentViewController(alert, animated: true, completion: nil)
}else{
if item != nil {
edititems()
print(item!.slminqty!)
} else {
createitems()
}
dismissVC()
}
}
保存功能:
func saveitem(sender: AnyObject) {
if item != nil {
edititems()
} else {
createitems()
}
print(item?.slminqty)
dismissVC()
}
我显然是以极其困难的方式做到这一点,或者总的来说是错误的。如何将textField数据转换为item.slminqty并保存项目?
答案 0 :(得分:1)
是的,您必须使用自引用来调用saveitems,因为两者都有不同的范围。你可能应该在里面使用self.saveitem()
。