在swift中清理应用程序内存

时间:2016-07-06 08:14:49

标签: ios xcode swift memory-management

我在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)
    }

然而,它并没有清理记忆。

这是一个内存分配屏幕:

enter image description here

所以我的问题是:是否有可能" kill"一些视图控制器,以清理内存?

这里举例说明" kill"您已连接时的注册流程视图。

谢谢你的回答。

0 个答案:

没有答案