0

Im, создающий приложение, в которое пользователь может войти и выйти из системы. Я проверяю, если сохраненный пользователем существует (от более ранних логинов) и если пользователь будет сохранен я вхожу, что пользователь в и затем изменить RootViewController для окна в ViewController, который должен появиться при входе в систему.Насколько эффективен переменный диспетчер просмотра окон?

// In LoginViewController 
let sb = UIStoryboard(name: "Main", bundle: NSBundle.mainBundle()) // Login viewcontrollers as login, facebook login, register is inside its own storyboard called Login 
let vc = sb.instantiateInitialViewController() as MainViewController 

let window = UIApplication.sharedApplication().delegate!.window!! 

window.rootViewController = vc 

Но я просто интересно, насколько это эффективно?

Будет ли он правильно обрабатывать память, просто сделав это?

+0

Xcode предлагает массив профилирующих инструментов. Я предлагаю вам использовать эти инструменты, чтобы определить, приемлемо ли влияние памяти/процессора. –

+0

Я не очень привык к инструментам, и мне гораздо легче спросить кого-то, кто уже знает, а также получателя репутации: D – Arbitur

+0

Вы пытаетесь что-то оптимизировать, не зная, что это проблема. Если вы испытываете проблемы с производительностью в своем приложении, ваше обращение * только * должно использовать инструменты для поиска проблемных областей. Люди на переполнении стека могут отвечать на отдельные вопросы, такие как тот, который вы задали, но это не обязательно касается вашего основного желания. –

ответ

1

Это не делает ничего особенного. Он похож на представление/отклонение контроллера вида.

Контроллер корневого представления предоставляет представление содержимого окна. Назначение контроллера вида для этого свойства (либо программно , либо с помощью Interface Builder) устанавливает вид контроллера представления как вид содержимого окна . Если в окне есть существующая иерархия вида , старые представления удаляются до того, как будут установлены новые .

Он будет обрабатывать память должным образом, если вы правильно обрабатываете память (не сохраняйте циклы между представлениями, контроллерами представлений, делегатами и т. Д.).

конечно же детальнее чисел можно найти, используя время, распределения профилирующих инструментов (как @Ian MacDonald suggested)

Off тему немного: как и для меня это предпочтительный способ переключения между неавторизованных в/неавторизованных состояний приложение. Я считаю, что этот подход приводит к упрощенной навигации по экрану между состоянием входа/выхода из системы: как только вы входите в систему, вы меняете root vc на свой контроллер данных и забываете о материалах для входа.

+0

Спасибо, что ответили, это было то, что я искал. И да, я думаю, что это довольно хорошее решение для изменения root vc при входе в систему, а затем снова войти в систему для входа в систему vc при выходе из системы и полностью игнорировать вход в систему, если сохраненный пользователь существует :) – Arbitur