クロージャ内で指定したdelegateでイベントが拾えない
APIを叩いた後にアラートを出し、そのイベントを拾ってから次のイベントに進みたいのですが、クロージャ内でdelegate: self
を指定しても、イベントが拾われません。
Objective-Cは触っておらず、swiftも初心者なので解決法が浮かばずに困っております。
typealias CompletionHandler = (result: Bool?) -> Void
class hogeViewController: UIViewController, UIAlertViewDelegate {
var completion: CompletionHandler?
func test(completion: (result: Bool) -> Void) {
let request = NSURLRequest(URL: NSURL(string: apiUrl)!)
NSURLConnection.sendAsynchronousRequest(request, queue: NSOperationQueue.mainQueue(), completionHandler:{ (response: NSURLResponse!, data: NSData!, error: NSError!) in
let alert = UIAlertView(
message: testMessage
delegate: self,
cancelButtonTitle: nil,
otherButtonTitles: "test1", "test2")
alert.show()
return
})
}
func alertView(alertView: UIAlertView, clickedButtonAtIndex buttonIndex: Int) {
println("clickedButtonAtIndex")
println(buttonIndex)
self.completion!(result: true)
}
}
お詳しい方がいましたらご回答宜しくお願い致します。