我的问题是,在VIEwControllers之间切换时,内存不会被释放.
像这样保持对SubVIEwControllers的引用是错误的吗?
@property (nonatomic,strong) UIVIEwController subVIEwController1; @property (nonatomic,strong) UIVIEwController subVIEwController2;
vIEwDIDUnload永远不会被调用.有没有人如何建立一个干净的视图层次结构的好例子?
解决方法 这很可能与ARC无关.仅当视图属性被释放/设置为nil时,才会在视图控制器上调用vIEwDIDUnload,这通常仅在应用程序收到内存警告时才会发生.尝试在模拟器中触发内存警告,看看是否会导致vIEwDIDUnload方法触发.如果它确实那么一切都很好.如果没有,你可能会以某种方式过度保留你的观点,也许是通过将它们分配给其他强烈保留的属性.
视图保留策略有例外,例如UINavigationController在视图控制器堆栈中释放视图(如果它们不在最前面),但它只是通过简单地将其子控制器的视图设置为nil来实现这一点.另一个控制者的观点.
如果您希望在不在屏幕上时释放视图,请在vIEwDIDdisappear:方法中将控制器的视图属性设置为nil,或者在视图不在屏幕上时停止保留视图控制器,并且每次只创建新的控制器实例你需要显示它们(这样,控制器和视图都将在不使用时释放).
总结以上是内存溢出为你收集整理的内存未在ios视图层次结构中发布全部内容,希望文章能够帮你解决内存未在ios视图层次结构中发布所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)