Нужно ли мне слабо фиксировать себя в обработчике завершения действий UIAlertController? - PullRequest
0 голосов
/ 30 апреля 2019

Я читал, что не нужно слабо фиксировать себя в обработчике завершения действия UIAlertController, если ссылка UIAlertController равна weak. Причина в том, что UIAlertController предназначен для освобождения всего, как только оно выполнится, при условии, что вы имеете слабую ссылку на него.

Источник здесь .

Вот гипотетический пример:

let alert = UIAlertController(title: "title", message: "message", preferredStyle: .alert)

// The action's completion handler captures the alert controller weakly, but self is not captured weakly
let action = UIAlertAction(title: "action title", style: .default, handler: { [weak alert] _ in
    guard let alertController = alert else {
        return
    }
    // The alert controller's action triggers a server call method owned by self
    self.serverCall { result in

            // We use the alertController inside the closure
            print(alertController.actions)

            DispatchQueue.main.async {
                // Do stuff on the main thread with the result
            }
    }
})

alert.addAction(action)

Это правильный способ сохранить слабую ссылку на UIAlertController?

Будет ли сохранение сильной ссылки на себя в этом случае вызывать цикл сохранения или нет?

...