Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 当设备内存不足时,是否可以防止应用程序终止?_Ios_Objective C - Fatal编程技术网

Ios 当设备内存不足时,是否可以防止应用程序终止?

Ios 当设备内存不足时,是否可以防止应用程序终止?,ios,objective-c,Ios,Objective C,iOS设备使用虚拟内存进行分页。由于页面的可用性受到各种因素的限制,如打开的应用程序数量、不同应用程序的分配等。当应用程序的分配速率超过其他应用程序释放页面的速率时,应用程序将终止。因此,操作系统要求应用程序释放内存。无法释放内存导致崩溃/终止 我的问题:是否有可能阻止应用程序在设备内存不足的情况下终止?在视图控制器中正确使用-(void)didReceiveMemoryWarning,您可以帮助阻止它,因为该方法应该在应用程序终止之前触发 是,当内存不足时,此方法: -(void)didRec

iOS设备使用虚拟内存进行分页。由于页面的可用性受到各种因素的限制,如打开的应用程序数量、不同应用程序的分配等。当应用程序的分配速率超过其他应用程序释放页面的速率时,应用程序将终止。因此,操作系统要求应用程序释放内存。无法释放内存导致崩溃/终止


我的问题:是否有可能阻止应用程序在设备内存不足的情况下终止?

在视图控制器中正确使用
-(void)didReceiveMemoryWarning
,您可以帮助阻止它,因为该方法应该在应用程序终止之前触发

是,当内存不足时,此方法:

-(void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
}

有人打电话来。您可以在此处处理这种情况。

每个视图控制器都将收到内存不足警告。请尝试以下任一方法

1.覆盖方法-(void)在视图控制器上收到内存警告

2.您可以为UIApplicationIDReceiveMemoryWarningNotificationNotification注册相应的类此通知

注:
应用程序仅在主运行循环中接收内存不足警告。如果主运行循环在内存不足时忙,应用程序将在未收到警告的情况下终止。

否,您无法阻止应用程序终止

正如其他人所注意到的,iOS会在内存不足时向您发出警告,如果可能的话,您可以释放一些内存(一个很好的类可以帮助您这样做,它是
NSCache
,很少有人知道:它就像
NSMutableDictionary
,在内存不足时可以释放内容)


但如果这还不够,最终操作系统将别无选择,并将杀死你的应用程序。iOS首先开始在后台关闭应用程序(应该已经保存了它们的状态),只有在没有其他选择的情况下,前台的应用程序才会被关闭:在这种情况下,您几乎总是会出现编程错误(比如内存泄漏)。

好的,有时应用程序会在设备内存不足的情况下启动时终止,对于这一点,我也应该使用相同的方法?好的,有时应用程序在启动设备内存不足时终止,对于这一点,我也应该使用相同的方法?从-(BOOL)application:(UIApplication*)application didfishlaunchingwithoptions:(NSDictionary*)launchOptions{}中删除不需要的代码当应用程序需要更多时间启动时,应用程序也会崩溃。根据您的评论,应用程序在启动时崩溃并不是因为内存不足。我认为您在启动时执行了繁重的任务,所以应用程序无法在一段时间内启动。请检查您的方法-(BOOL)应用程序:(UIApplication*)应用程序didFinishLaunchingWithOptions:(NSDictionary*)launchOptions{}如vipul在之前的评论中所说。