Я использую сетевой слой на основе https://medium.com/flawless-app-stories/writing-network-layer-in-swift-protocol-oriented-approach-4fa40ef1f908, но при тестировании я замечаю небольшое сопротивление между двумя контроллерами представления.
Я создаю экземпляр NetworkManager в View Controller 1, затем я pu sh контроллер представления, VC2, через контроллер навигации. VC2 также имеет инициализацию, но вместо создания нового сетевого менеджера я передаю первый.
Код инициализации для обоих контроллеров представления:
init(networkManager: AuthNetworkManager) {
super.init(nibName: nil, bundle: nil)
self.networkManager = networkManager
}
Инстанцирование происходит в AppDelegate .swift:
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
window = UIWindow(frame: UIScreen.main.bounds)
window!.rootViewController = UINavigationController(rootViewController: LoginViewController(networkManager: AuthNetworkManager()))
window!.makeKeyAndVisible()
return true
}
}
LoginViewController - это VC1. Когда я делаю sh из VC1 в VC2, происходит снижение производительности (думаю, из-за визуальных эффектов). Вот как я нажимаю:
self.navigationController?.pushViewController(ViewController(networkManager: self.networkManager), animated: true)
Почему происходит такое снижение производительности? ЧТО СЛЕДУЕТ ДЕЛАТЬ? . Даже тогда для отправки первого сетевого запроса требуется около 1 секунды. Вы можете проверить код моего репо здесь: https://github.com/Andrew-Chen-Wang/mobile-auth-example Там есть мои инструкции для запуска сервера и проект swift для запуска симулятора.