Я создаю контроллер представления предупреждений с действием, используя следующий код
var alertView = UIAlertController(title: title, message: message, preferredStyle: UIAlertControllerStyle.Alert)
alertView.addAction(UIAlertAction(title: NVConstant.alertInfoBtnTitle, style: UIAlertActionStyle.Default, handler: alertHandler))
И мой код обработчика предупреждений следующий:
@lazy var alertHandler:(UIAlertAction!)->Void = { a![enter image description here][1]ction in
var clickedButtonTitle:String = action.title
switch clickedButtonTitle{
case NVConstant.notificationAlertConfirmatinTitle :
Utility.cancelAlarmForTheActivity(activity: self.selectedActivity.0)
case NVConstant.notificationAlertCancelTitle :
self.selectedSwitch.setOn(true, animated: true)
default :
return
}
}
Итак, мой вопрос заключается в том, как избежать сильной ссылки на себя при закрытии обратного вызова. Я пытался использовать [unowned self], но после этого сбоя приложения, я думаю, из-за несоответствия параметров.
@lazy var alertHandler:(UIAlertAction!)->Void = { [unowned self] action in //Crash
// code
}
Ниже приведен Crash: http://i.stack.imgur.com/JfgNi.png
Итак, как я могу избежать сильной ссылки здесь?