我想在UIAlertAction中返回一个整数。 现在我收到错误'Int is not convertible to Void'。警报所在的函数应该返回int。
这是我的代码:
func writeSteps() -> Int {
var allergies = 0
var severe = UIAlertController(title: "More information", message: "blablabla", preferredStyle: UIAlertControllerStyle.Alert)
severe.addAction(UIAlertAction(title: "Yes", style: .Default, handler: { (action: UIAlertAction!) in
allergies += 1
return allergies
}))
severe.addAction(UIAlertAction(title: "No", style: .Default, handler: { (action: UIAlertAction!) in
allergies += 2
return allergies
}))
self.presentViewController(severe, animated: true, completion: nil)
}
这可能吗?
如果没有,每当我尝试在uiAlertController之后返回一些东西时,它首先返回,然后出现uialert。有没有办法让uialert先行,然后返回一个变量?
答案 0 :(得分:0)
如果您只是尝试更新allergies
中的值,则可以保留对您尝试更新的属性的引用(self.allergies),然后您可以在操作中增加该值。
如果您需要返回此值,则可以在处理程序中调用第二种方法:
severe.addAction(UIAlertAction(title: "No", style: .Default, handler: { (action: UIAlertAction!) in
self.returnAllergiesWithVal(2);
}))
然后returnAllergiesWithVal
方法可以将该值传递到您需要的任何位置。