在UIAlertAction中返回int或在UIAlertAction之后返回int

时间:2015-08-03 17:12:24

标签: xcode swift ios8

我想在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先行,然后返回一个变量?

1 个答案:

答案 0 :(得分:0)

如果您只是尝试更新allergies中的值,则可以保留对您尝试更新的属性的引用(self.allergies),然后您可以在操作中增加该值。

如果您需要返回此值,则可以在处理程序中调用第二种方法:

severe.addAction(UIAlertAction(title: "No", style: .Default, handler: { (action: UIAlertAction!) in
     self.returnAllergiesWithVal(2);
}))

然后returnAllergiesWithVal方法可以将该值传递到您需要的任何位置。