关于didReceiveMemoryWarning
/ viewDidUnload
的问题。
如果我的应用程序有很多视图控制器,其中一个显示,其他显示(因为我使用导航控制器或标签栏控制器,没关系),视图控制器将收到didReceiveMemoryWarning
/ viewDidUnload
,所有这些,仅隐藏或仅显示?
显示VC是否可能会收到didReceiveMemoryWarning
但不会收到viewDidUnload
(因为如图所示,它没有任何意义)。
顺便说一句,看到这张图后我有这些问题:
非常感谢您的帮助。
答案 0 :(得分:1)
首先,有两种方法didReceiveMemwarnings:
- (void)applicationDidReceiveMemoryWarning:(UIApplication *)application
当应用程序从系统收到内存警告时,将调用。 和UIViewController的
- (void)didReceiveMemoryWarning
当应用程序收到内存警告时发送到视图控制器。
其次,首先在这些方法中调用代码(当然,好吧),然后在那些没有超级视图的控制器(即那些当前不显示的控制器)中删除视图并发送viewDidUnload < / p>
答案 1 :(得分:0)
当收到内存警告时,会在应用程序级别收到,所有viewControllers和appdelegate都会收到它。
没有必要为任何或所有控制器调用viewDidUnload
。它严格依赖于操作系统认为内存警告的重要性。与第一次一样 - 您的应用会收到Level 1
警告,然后Level 2
,最有可能是第三次(短时间间隔)操作系统将终止应用程序,认为它已进入不稳定状态。