Създавам контролер за изглед на предупреждение с действие чрез следния код
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
}
Следва срив: http://i.stack.imgur.com/JfgNi.png
И така, как мога да избегна силна препратка тук?