1.AVCaptureSession:
Не устанавливайте слабое значение для вашей переменной captureSession
, так как нет гарантии.Потому что ваш captureSession
будет освобожден в любое время, когда он не используется.Также я рекомендую вам отключить функцию captureSession
в viewWillDisappear
.
Подробнее о слабых, сильных и т. Д. здесь :
2.weak self
в блоке:
Когда ваш блок завершения удерживается некоторыми другими объектами, вам следует избегать циклов сильных ссылок.Таким образом, вы должны использовать weak self
для таких блоков завершения.
Пожалуйста, обратитесь к этому сообщению для получения дополнительной информации.
3.Наблюдатели:
Если вы забыли сделать removeObserver
для вашего класса, ваш класс будет удерживать этого наблюдателя, даже если вы заново инициируете тот же класс.
Пример: Если вы забыли удалить removeObserver
в вашем ViewController, при повторном запуске того же контроллера ваш наблюдатель будет добавлен снова.Так что метод наблюдателя будет вызываться дважды и т. Д.
Но удаление наблюдателя достаточно и нет необходимости освобождать ваш textField или другие объекты, если вы используете ARC.