ios - iOS 中多个打开的 UIViewController 存在内存问题。 swift

标签 ios swift

我有以下情况,有一个事件类型(来自用户的数据),当前用户可以更详细地打开此事件。其他用户可以参与其中,当前用户可以转到每个用户的个人资料。用户配置文件包含事件(它创建的),当前用户也可以访问它们。问题是,如果您多次执行此操作(例如 15 次转换),那么该应用程序已经消耗了 214 兆字节(iPhone 7),如果是这样,那么我认为该应用程序可能会崩溃。应用程序中没有内存泄漏,因为我用工具检查过,如果我单击选项卡(根 Controller 是 UITabBarController 的继承人),内存就会恢复到正常状态(几乎就像应用程序已启动)。我感兴趣的是如何最好地实现这个系统(例如,正如在 Twitter 上所做的那样,可以从一个用户的新闻专线切换到另一个用户的新闻专线等等)。感谢您的帮助。

最佳答案

我尽可能减少了每个新ViewController的内存消耗。不要限制用户打开一个又一个屏幕的数量 - 甚至苹果也不限制(例如 - Apple Music)。 如果用户在屏幕上移动 500 次而不返回,应用程序将耗尽内存并崩溃,这是正常的 - 如果用户想崩溃,那么它就会成功。 但是,如果您释放不可见 ViewController 中未使用的资源,则可以最大程度地减少因内存不足而导致失败的可能性:

  • 覆盖 didReceiveMemoryWarning(释放轻松重新创建的资源,例如 CoreData/Realm 对象、图片等)
  • 重写 viewWillAppear(用于创建资源)和 viewDidDisappear(用于释放资源)

Resource

关于ios - iOS 中多个打开的 UIViewController 存在内存问题。 swift ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45340984/

相关文章:

ios - swift/OpenGL ES 2.0 - 从 YUV420 缓冲区创建纹理

ios - EXC_BAD_ACCESS UITable 在 numberOfRowsInSection 中设置 tableHeaderView

ios - Swift : property 'self.circle1' not initialized at super. 初始化调用出错?

ios - .ipa 文件安装在 ipad 上显示为灰色

ios - 允许在 WKWebView 上的输入文件中上传文档

ios - 核心数据子类不会自动生成

iphone - 使用 CAAnimation 实现 CATransition 推送

ios - Swift CNCopySupportedInterfaces 无效

swift - 如何使用中文快速获取TimeZones数组

swift - 如何在 Storyboard上显示自定义 View ?