Мне нужно, чтобы код запускался каждый раз, когда приложение открывается, в том числе, если оно было приостановлено (пользователь нажал кнопку дома, а затем вернулся в приложение).Run Code Every Time App Opens - лучший способ?
Я уже знаю, что viewDidLoad загружается только на начальную нагрузку VC, так что не делает то, что мне нужно. И viewWillAppear/viewDidAppear тоже не делают этого. Эта нить SO имеет an answer, но это от шести лет назад, и я не люблю ответа. По сути, это говорит о создании наблюдателя. Однако это кажется пустой тратой ресурсов, и наблюдатели создают те опорные петли, которые хранят вещи в памяти.
Если никто не дает мне лучшего решения, я могу попробовать «applicationDidBecomeActive» в AppDelegate, но я стараюсь не загружать свой appDelegate с кодом ViewController.
Мой вопрос заключается в том, что за шесть лет, прошедших с тех пор, как эта нить была услышана, действительно ли Swift/iOS10 разрешает более чистое решение?
Не рекомендуется вводить какой-либо код контроллера вида в AppDelegate, однако вполне нормально пересылать его методы контроллеру вида: https://en.wikipedia.org/wiki/Forwarding_(object-oriented_programming). – user3581248
Обратите внимание на это https://developer.apple.com/reference/uikit/uiapplicationdidbecomeactivenotification – ogres