kna*_*f74 4 camera memory-leaks calayer ios automatic-ref-counting
我开发了我的第一个应用程序,仍在学习 刚刚更新了Xcode 5,我的iPhone 5正在运行iOS 7.1.我现在正致力于理解"仪器"工具来分析我的应用程序.我正在使用仪器中的泄漏配置文件,并且遇到了一个我无法弄清楚的保留周期和泄漏.感谢我能理解的任何帮助a)如何查明错误和b)我做错了什么以及如何在将来避免它.
在我的应用程序中,我正在使用相机拍摄照片.当相机启动时,我轻触屏幕进行对焦,这时我注意到仪器中出现了泄漏.看起来我的代码中没有保留周期(如果我理解正确)和我的代码中的根漏洞,我不明白.
我正在使用ARC,所以我不应该在我指向我的代码部分中发布"picker"(下面的第2部分,带代码).


Run Code Online (Sandbox Code Playgroud)- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { UIImage *pickerImage = [info objectForKey: UIImagePickerControllerOriginalImage]; _imageView.image = pickerImage; [picker dismissViewControllerAnimated:YES completion:nil]; // <--- mem-leak }
编辑 - 我创建我的UIImagePickerController的代码.
Run Code Online (Sandbox Code Playgroud)- (IBAction)snapPicture:(id)sender { UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init]; // If the camera button was tapped AND we have a camera, use it... if ((sender == _cameraButton) && [UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) { [imagePicker setSourceType:UIImagePickerControllerSourceTypeCamera]; } else { [imagePicker setSourceType:UIImagePickerControllerSourceTypePhotoLibrary]; } imagePicker.delegate = self; // bring up the image picker view [self presentViewController:imagePicker animated:YES completion:nil]; }
这是我的理论:你遇到的问题显然是苹果公司自己的代码中的一个错误(或缺陷),而你所能做的只是疯狂地笑而忘记它.
为了测试我的理论,我运行了自己的代码,完全独立地编写并在不同的时间编写.它与您的代码几乎完全相同:它允许用户拍照,并将图像放入界面.这是我的代码:
我使用Leaks仪器在Instruments下运行我的代码,猜猜是什么?我看到你做的同样的问题.

当然,我开始在Stack Overflow上搜索,所有这些都证明是旧的.例如:
iOS5上的UIImagePickerController内存泄漏
甚至Apple自己的示例代码,称为PhotoPicker(或使用UIImagePickerController来选择图片和拍照)也有同样的泄漏.
| 归档时间: |
|
| 查看次数: |
964 次 |
| 最近记录: |