iphone App中的内存泄漏

Posted

技术标签:

【中文标题】iphone App中的内存泄漏【英文标题】:Memory leaks in iphone App 【发布时间】:2011-01-05 03:33:35 【问题描述】:

我的应用程序已经完成了大部分工作。当我在模拟器上运行应用程序时,它工作正常,但是当我在设备上运行一段时间时,调试器显示一条消息为“程序收到信号 0”。我用仪器的帮助泄漏它显示泄漏。但我无法确定泄漏的确切位置。正在释放正在分配的每个对象。 例如,我提供了我的代码的一小部分:

     if([UIImagePickerController    isSourceTypeAvailable:UIImagePickerControllerSourceTypePhotoLibrary])
  
    UIImagePickerController *picker=[[UIImagePickerController alloc] init];
    picker.delegate=self;
    picker.sourceType=UIImagePickerControllerSourceTypePhotoLibrary;        
   [self presentModalViewController:picker animated:YES];
   [picker release];
//  NSFileHandle *fileHandle = [[NSFileHandle alloc]initWithFileDescript
   

在上面的代码泄漏显示在 UIImagePickerController *picker=[[UIImagePickerController alloc] init];但我正在释放它。 有人可以向我提供有关泄漏的详细信息以及如何修复它们。在此先感谢。

【问题讨论】:

【参考方案1】:

在这行代码中:

[self presentModalViewController:picker animated:YES];

self(父控制器)实际上保留了您的选择器,并且在父控制器明确解除它之前不会释放它。只要您的父控制器在代码中的某个时间点关闭此选择器,您就可以了。

【讨论】:

对不起,我不知道我是否正确理解了您的回答。是的,我正在以委托方法解雇选择器。仍然是同样的问题:(

以上是关于iphone App中的内存泄漏的主要内容,如果未能解决你的问题,请参考以下文章

如何解决 xcode(仪器)中的 iPhone 应用程序内存泄漏

iPhone 帮助:CoreLocation 框架中的奇怪内存泄漏

奇怪的内存泄漏

iPhone应用程序中的MKMapView内存泄漏

如何检测 iPhone 应用程序中的内存泄漏/电池耗尽

iPhone SDK 中的 NSMutableArray、NSArray、NSString 内存泄漏