美文网首页
iOS_响应内存警告

iOS_响应内存警告

作者: 青葱烈马 | 来源:发表于2016-08-29 11:40 被阅读191次

好的应用应该在系统内存警告的情况下,释放一些可以重新创建的资源. 在 iOS 中,我们可以在应用程序委托对象, 视图控制器以及其他类中获得系统内存警告消息.

<b>1.应用程序委托对象</b>
在应用程序委托对象中接收到内存警告消息,需要重写 applicationDidReceiveMemoryWarning:方法,

- (void)applicationDidReceiveMemoryWarning:(UIApplication *)application{
        NSLog(@"appDelegate 中调用applicationDidReceiveMemoryWarning:");
}

<b>2.视图控制器</b>
在视图控制器中接收内存警告消息,需要重写 didReceiveMemoryWarning:方法.

- (void)didReceiveMemoryWarning {
    NSLog(@"ViewController 中的didReceiveMemoryWarning调用");
    [super didReceiveMemoryWarning];
    
    // 释放资源代码应该放在 [super didReceiveMemoryWarning]; 语句后面.
}

<b>3.其他类</b>
在其他类中可以使用通知. 在内存警告是, iOS 系统会发出 UIApplicationDidReceiveMemoryWarningNotification 通知, 凡是在通知中心注册了该通知的类都会接受到内存警告通知,

- (void)viewDidLoad {
     [super viewDidLoad];
    // 接收到内存警告通知,调用handleMemoryWarning方法处理
    NSNotificationCenter *center = [NSNotificationCenter defaultCenter];
    [center addObserver:self selector:@selector(handleMemoryWarning) name:UIApplicationDidReceiveMemoryWarningNotification object:nil];
}
// 处理内存警告
- (void)handleMemoryWarning{
    NSLog(@"ViewController 中 handleMemoryWarning 调用");
}

在上述代码中, 我们在viewDidLoad方法中注册UIApplicationDidReceiveMemoryWarningNotification消息,接收到报警信息后调用handleMemoryWarning方法, 这个代码完全可以写在其他类中, 在 viewController中重写 didReceiveMemoryWarning 方法就可以了, 这里只是示意性的介绍一下 UIApplicationDidReceiveMemoryWarningNotification报警信息.

内存警告在设备上并不经常出现, 一般我们没有办法模拟, 但是模拟器上有一个功能可以模拟内存警告. 启动模拟器, 选择"硬件" -> "模拟内存警告" 模拟器菜单, 这是我们会在输出窗口看到内存警告发生了.

相关文章

  • iOS_响应内存警告

    好的应用应该在系统内存警告的情况下,释放一些可以重新创建的资源. 在 iOS 中,我们可以在应用程序委托对象, 视...

  • iOS_模拟内存警告

    有三种方法可以实现内存警告。 1.模拟器菜单:Hardware-》Simulate Memory Warning ...

  • NSCache

    NSCache 基本上就是一个会自动移除对象来释放内存的 NSMutableDictionary。无需响应内存警告...

  • 内存警告

    此篇文章仅为记录自己所遇到的内存警告时所产生的原因(持续更新...),不喜勿喷,本就不是写来让别人看的。若有错误,...

  • 收藏文章

    ios 处理内存警告

  • iOS_内存泄漏

    为了测试内存泄漏方便,封装了一个Framework。 GitHub地址:https://github.com/we...

  • iOS内存警告

    1.当iOS系统内存不足,会发出内存警告的通知。首先调用的是 AppDelegate 里重新的内存警告代理方法 2...

  • AppDelegate

    delegate 特殊--内存警告的时候

  • SDWebImage常用方法

    1、常用的方法 2、内存处理,当app收到内存警告时

  • Xcode调试Bug技巧

    一. MRC 工程完成后保证Xcode不能出现黄色警告以及蓝色警告,黄色警告则为潜在的Bug,蓝色警告则为内存释放...

网友评论

      本文标题:iOS_响应内存警告

      本文链接:https://www.haomeiwen.com/subject/uquxettx.html