Увольнение UIAlertController (лучшая практика)

При использовании UIAlertController, например:

var alert = UIAlertController(title: "Core Location", 
     message: "Location Services Disabled!", 
     preferredStyle: UIAlertControllerStyle.Alert)
alert.addAction(UIAlertAction(title: "OK", style: UIAlertActionStyle.Default, 
     handler: nil))
self.navigationController.presentViewController(alert, animated: true, 
     completion: nil)

Я заметил, что отклонение вида предупреждения, по-видимому, выполняется автоматически. Не следует ли отклонять представленный ViewController с помощью представления ViewController через вызов делегата?

Ответ 1

Увольнение "включено" в вызов presentViewController. Вам не нужен делегат, потому что у вас есть блок завершения. В этом блоке вы помещаете то, что вы обычно добавляете в обратный вызов делегата, за исключением вызова для отклонения предупреждения.

Что касается "лучшей практики", я отметил, что во многих API-интерфейсах Apple заменила обратные вызовы делегатов блоками завершения. Apple обычно рекомендует использовать синтаксис блока. Я предполагаю, что это может быть отчасти потому, что это помогает поддерживать связанные секции кода вместе.