|
|
1
12
这是一个古老的问题,但我看不到一个正确的答案,所以下面是:
当收到内存警告时,
如果在内存警告时视图控制器的视图未被使用,则控制器将通过将属性设置为nil来卸载它。它如何知道视图是否被使用?在视野中
一旦发生这种情况,控制器
那么什么是
这将首次从磁盘读取数据,然后将其保存在实例变量中。自从
|
|
|
2
8
我会这样清理:
编辑 作为后续行动的回应:
|
|
|
3
1
为了确保我不必为我写的每个视图控制器都处理这个问题。我刚刚制作了一个xcode viewcontroller模板,它提供了关于哪些对象要发布以及何时发布的指导原则。 此处提供更多说明 http://iphone2020.wordpress.com/2010/05/30/efficient-memory-handling-in-uiviewcontroller-part-1/ 希望它有用。 |
|
|
4
1
关于视图管理和内存警告: uikit不仅允许从视图控制器返回导航,还允许从现有视图控制器导航到其他视图控制器。 在这种情况下,将分配一个新的uiviewcontroller,然后加载到视图中。 旧的视图控制器将离开屏幕并变为非活动状态,但仍拥有许多对象,其中一些在自定义属性和变量中,另一些在视图属性/层次结构中。 新的可视视图控制器也同样适用于其视图对象。
由于移动设备的内存有限,拥有这两组对象“一个在屏幕外视图控制器中,另一个在屏幕上视图控制器中”可能太多无法处理。
如果uikit认为有必要,它可以回收一些屏幕外视图控制器的内存,这些内存无论如何都不会显示;uikit知道哪些视图控制器在屏幕上,哪些是屏幕外的,毕竟,它是管理它们的那个(当您调用
当系统内存不足时,它将触发
这里有一个更详细的解释: http://myok12.wordpress.com/2010/11/30/custom-uiviewcontrollers-their-views-and-their-memory-management/ |
|
|
5
0
幸运的是,模拟器有一个方便的功能,允许您将内存不足的情况放到测试中。在viewDidLoad和didReceiveMemoryWarning中放置一些nslog()语句,如下所示: 伊米尔
|
|
|
mikko · SwiftUI如何在不同堆栈中实现同一视图的平滑动画 1 年前 |
|
|
routern · 如何组合contextMenu和圆角矩形? 1 年前 |
|
|
DevHome98 · 3D触摸不适用于设备swift 2 年前 |
|
|
dunoiww · 从全屏返回时如何触发onAppear 2 年前 |
|
|
Community wiki · iPhone上ivar的继承问题 2 年前 |
|
|
Community wiki · 查找iOS日历 2 年前 |
|
|
Community wiki · 有效的IPhone编程技术[关闭] 2 年前 |