Должен ли NSFetchResultsController прекратить отслеживание изменений, когда пользователь покидает экран? - PullRequest
0 голосов
/ 24 апреля 2020

Скажем, у нас есть контроллеры представления A и B, оба в стеке UINavigationController.

Должен ли я установить делегат fetchResultController A равным nil, когда я go из A в B, и затем установить его обратно при возврате назад? Может быть, что-то вроде этого для ViewControllerA:

func viewWillDisappear() {
    fetchResultsController.delegate = nil
}

func viewWillAppear() {
    fetchResultsController.delegate = self
    collectionView.reloadData()
}

Плюсы удаления делегата для остановки отслеживания:

  • Производительность. Резервный cellForItem(at indexPath: IndexPath) или cellForRow(at indexPath: IndexPath) вызываться не будет.

Минусы:

  • Смещение прокрутки потеряно, потому что мы пропустим insert элементов / строк, поэтому отсутствуют функции по умолчанию для автоматической настройки прокрутки.

Я не нашел никаких замечаний о том, какой подход считается по умолчанию . Все будет полезно, спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...