iOS ARC(?)窃取我的搜索栏

时间:2012-01-17 19:27:40

标签: ios memory-management automatic-ref-counting uisearchbardisplaycontrol

我制作的iOS5应用程序与Apple的Contacts-app非常相似。一个搜索栏,一个serachdisplaycontroller一个tableview。当用户点击单元格时,使用segue呈现详细视图(模态样式...)。一切运作良好,但是...当应用程序在后台睡了几个小时然后再次激活时,我看到我的应用程序崩溃在真正的iPhone 4S设备上。在有序的情况下,崩溃是不可能重新创建的。好吧,某种记忆问题......

在iOS模拟器上,我可以看到崩溃,如果

  

- >点击一个单元格(或设置视图的按钮)    - >显示详细视图(或显示设置视图)    - >发出“模拟内存警告”    - >用户尝试使用“完成”按钮导航回来。

- (IBAction)done:(id)sender
{
    [self.delegate detailedViewControllerDidFinish:self];
}

- (void)detailedViewControllerDidFinish:(DetailedViewController *)controller
{    
    [self dismissModalViewControllerAnimated:YES];
}
  

2012-01-17 19:58:43.777 MyApp [89968:f803] *由于终止应用   未捕获的异常'NSUnknownKeyException',原因:'[setValue:forUndefinedKey:]:这个类不是键值   符合编码的关键搜索栏。'   * 首先抛出调用堆栈:...

所以出于某种原因,当操作系统想要我的某些应用内存时,serachbardisplaycontrol无效(我猜)

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

我想我已成功解决了这个问题。它归结为在触发低内存条件时搜索栏处于活动状态。当您遇到内存不足的情况时,请执行以下操作:

[self.searchDisplayController setActive:NO animated:NO];

那应该解决它。