我在swift中使用注册/连接过程编写了一个XCode项目。当您重新连接时,即使重新启动应用,您也不会重复此过程,直到您点击"退出"按钮。
我注意到,如果您在启动应用时遵循注册/连接流程,内存大约为500Mb ,而如果应用以连接用户启动,则内存为大约140Mb 。
注册过程由3个与自定义segue连接的视图控制器组成。通过以下代码访问登录视图:
func switchRootViewController(rootViewController: UIViewController, animated: Bool, completion: (() -> Void)?)
{
if animated
{
UIView.transitionWithView(window!, duration: 0.5, options: .TransitionCrossDissolve, animations:
{
let oldState: Bool = UIView.areAnimationsEnabled()
UIView.setAnimationsEnabled(false)
self.window!.rootViewController = rootViewController
UIView.setAnimationsEnabled(oldState)
}, completion: { (finished: Bool) -> () in
if (completion != nil)
{
completion!()
}
})
}
else
{
window!.rootViewController = rootViewController
}
}
如果rootViewController被我想要加载的登录视图替换,你可以在这里看到:
func goToNextView()
{
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let homeViewController = storyboard.instantiateViewControllerWithIdentifier("conversationViewController") as!ConversationViewController
homeViewController.currentUser = self.currentUser
let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
appDelegate.switchRootViewController(home, animated: true, completion: nil)
}
然而,它并没有清理记忆。
这是一个内存分配屏幕:
所以我的问题是:是否有可能" kill"一些视图控制器,以清理内存?
这里举例说明" kill"您已连接时的注册流程视图。
谢谢你的回答。