UIAlertView clickedButtonAtIndex

UIAlertView clickedButtonAtIndex

我正在实现一个 UIAlertView,需要它在 iOS7 上 运行。下面的代码有效,但我的问题是关于 alertView(alertView: UIAlertView, clickedButtonAtIndex buttonIndex: Int) 函数的行为。

我有一个 println("button index clicked (buttonIndex)") 用于打印单击了什么按钮。按钮工作正常,打印 0 和 1。

而且当 alertView 启动时,我打印了 0。这应该如何工作?还是这里有问题?

UPDATED CODE

        @IBAction func purgeDatabase() {

    // fetch request
    let fetchRequest = NSFetchRequest(entityName: "ConcreteBagEntity")
    var error : NSError?

    // execute fetch request
    if let fetchResults = self.managedObjectContext!.executeFetchRequest(fetchRequest, error: &error) as? [ConcreteBagEntity] {
        if error != nil{
            return
        }

        // if results are found
        if fetchResults.count != 0 {

            let purgeAlertController = UIAlertView(title: "Before you go ahead", message: "You are about to delete all your previous quotes. Are you sure you want to go ahead?", delegate: self, cancelButtonTitle: "Cancel")
            purgeAlertController.addButtonWithTitle("Ok")
            purgeAlertController.show()

        }// END IF FETCH != 0
        else{
            alertViewLaunch("Looks like there is nothing here to delete")
        }
    }//END FETCH REQUEST
}//END IBACTION

func alertView(alertView: UIAlertView, clickedButtonAtIndex buttonIndex: Int) {
    println("button index clicked -> \(buttonIndex)")
    if buttonIndex == 1 {
        purgeAllData()
    }
}

当 alertView 启动时,您会打印 0。因为你在定义alertView的时候强行调用了它的delegate方法self.alertView(purgeAlertController, clickedButtonAtIndex: Int()).

定义alertView的时候不用写这一行。评论这一行并尝试一下。其余代码正确。

您在以下行中自己调用了它:

self.alertView(purgeAlertController, clickedButtonAtIndex: Int())

相反,您可以调用 here