Когда я определяю удобный инициализатор UIAlertController
:
extension UIAlertController {
convenience init(message: String?) {
self.init(title: nil, message: message, preferredStyle: .Alert)
self.addAction(UIAlertAction(title: "OK", style: .Cancel, handler: nil))
}
}
и использовать его в действии кнопки в моем подклассе UIViewController
:
func buttonAction(button: UIButton) {
let alert = UIAlertController(dictionary: nil, error: nil, handler: nil)
presentViewController(alert, animated: true, completion: nil)
}
и нажмите эту кнопку в симуляторе, я получаю предупреждение:
Попытка загрузить представление контроллера представления во время его освобождения не допускается и может привести к неопределенному поведению (UIAlertController).
Однако я не получаю предупреждения, если вместо удобного инициализатора я использую глобальную функцию:
func UIAlertControllerWithDictionary(message: String?) -> UIAlertController {
let alert = UIAlertController(title: nil, message: message, preferredStyle: .Alert)
alert.addAction(UIAlertAction(title: "OK", style: .Cancel, handler: nil))
return alert
}
Я сообщил об этом в Apple как об ошибке iOS SDK.
Пока это не будет исправлено, можно ли игнорировать предупреждение и использовать удобный инициализатор?