ios的内存警告怎么处理

 我来答
huanglenzhi
推荐于2016-02-08 · 知道合伙人数码行家
huanglenzhi
知道合伙人数码行家
采纳数:117538 获赞数:517195
长期从事计算机组装,维护,网络组建及管理。对计算机硬件、操作系统安装、典型网络设备具有详细认知。

向TA提问 私信TA
展开全部
  转载 想要很好的应用ios开发技术,其中怎样响应内存警告是很重要的,使用的方法决定你iOS培训中操作后的最后结果,所以达内科技请大家一定要细心的了解使用方法。
  好的应用应该在系统内存警告情况下释放一些可以重新创建的资源。在iOS中我们可以在应用程序委托对象、视图控制器以及其它类中获得系统内存警告消息。
  1、应用程序委托对象
  在应用程序委托对象中接收内存警告消息,需要重写applicationDidReceiveMemoryWarning:方法。AppDelegate的代码片段:
  - (void)applicationDidReceiveMemoryWarning:(UIApplication *)application
  {
  NSLog(@”AppDelegate中调用applicationDidReceiveMemoryWarning:”);
  }
  2、视图控制器
  在视图控制器中接收内存警告消息,需要重写didReceiveMemoryWarning方法。ViewController的代码片段:
  - (void)didReceiveMemoryWarning
  {
  NSLog(@”ViewController中didReceiveMemoryWarning调用”);
  [super didReceiveMemoryWarning];
  //释放成员变量
  [_listTeams release];}

  注意释放资源代码应该放在[super didReceiveMemoryWarning]语句下面。
  3、其它类
  在其它类中可以使用通知,在内存警告时候iOS系统会发出 UIApplicationDidReceiveMemoryWarningNotification通知,凡是在通知中心注册了UIApplicationDidReceiveMemoryWarningNotification通知的类都会接收到内存警告通知。 ViewController的代码片段:
  - (void)viewDidLoa
  {
  [super viewDidLoad];
  NSBundle *bundle = [NSBundle mainBundle];
  NSString *plistPath = [bundle pathForResource:@"team"
  ofType:@"plist"];
  //获取属性列表文件中的全部数据
  NSArray *array = [[NSArray alloc] initWithContentsOfFile:plistPath];
  self.listTeams = array;
  [array release];
  //接收内存警告通知,调用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报警消息。
  内存警告在设备上出现并不是经常的,一般我们没有办法模拟,但模拟器上有一个功能可以模拟内存警告,启动模拟器,选择模拟器菜单硬件→模拟内存警告,这个时候我们会在输出窗口中看到内存警告发生了。
  2012-11-06 16:49:16.419 RespondMemoryWarningSample[38236:c07] Received memory warning.
  2012-11-06 16:49:16.422 RespondMemoryWarningSample[38236:c07] AppDelegate中调用applicationDidReceiveMemoryWarning:
  2012-11-06 16:49:16.422 RespondMemoryWarningSample[38236:c07] ViewController中handleMemoryWarning调用
  2012-11-06 16:49:16.423 RespondMemoryWarningSample[38236:c07] ViewController中didReceiveMemoryWarning调用
  多看多做多练习是学习语言必须经历的过程,学习不是一朝一夕的事情,只有恒之以衡的坚持才能带来成功。达内希望以上的ios教程能给大家带来帮助。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式