首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >利用仪器跟踪内存泄漏Xcode5和iOS7

利用仪器跟踪内存泄漏Xcode5和iOS7
EN

Stack Overflow用户
提问于 2014-03-26 20:39:00
回答 1查看 974关注 0票数 4

我开发了我的第一个应用程序,现在还在学习。昨天刚刚更新了Xcode 5,我的iPhone 5正在运行iOS 7.1。我现在正致力于理解仪器工具来分析我的应用程序。我正在使用仪器的泄漏配置文件,并遇到了一个保留周期和泄漏,这是我无法弄清楚的。感激我所能得到的任何帮助,a)如何找出错误,b)我做错了什么,以及如何在将来避免它。

在我的应用程序中,我用相机拍照。当相机打开时,我点击屏幕进行对焦,这时我注意到仪器上出现了漏水现象。看起来我的代码中没有保留循环(如果我正确理解的话),代码中有根泄漏,但我不理解。

我使用的是ARC,所以我不应该在我的代码中工具指向我的部分中发布“选择符”(下面第2部分,带有代码)。

  1. 我能对保留周期做些什么。这不是我的代码,但我仍然是它的原因吗?它是否源于“根泄漏”?如果我不对此负责,我该怎么办?

  1. 我在这个堆栈跟踪中的唯一代码不能帮助我理解泄漏是从哪里来的。在我的代码中,这一行是选择器,拒绝查看控件动画:是的,完成:0;在我的imagePickerController:didFinishPickingMediaWithInfo:方法中。我正在粘贴下面的代码。

  • ( (void)imagePickerController:(UIImagePickerController *)选择器didFinishPickingMediaWithInfo:(NSDictionary *)info { UIImage *泡菜图像= info objectForKey: UIImagePickerControllerOriginalImage;_imageView.image = pickerImage;picker DissusViewController动画:YES completion:nil;// <--mem-检漏}

编辑-代码,我在这里创建我的UIImagePickerController。

  • (IBAction)snapPicture:(Id)发送者{ UIImagePickerController *imagePicker = [UIImagePickerController alloc init];//如果相机按钮被点击,我们有相机,使用它.如果((发送方setSourceType:UIImagePickerControllerSourceTypeCamera;)& UIImagePickerController setSourceType:UIImagePickerControllerSourceTypePhotoLibrary;} == { imagePicker }==} imagePicker.delegate = self;//打开图像选择器视图-自呈现视图控制器: imagePicker动画:YES完成:0;}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-26 23:33:33

我的理论是:你所遇到的显然是苹果自己的代码中的一个错误(或缺陷),你所能做的就是疯狂地笑着忘记它。

为了验证我的理论,我运行了自己的代码,完全分开编写,并在不同的时间编写。它所做的与代码所做的几乎相同:它允许用户拍照,并将图像放入界面。这是我的密码:

https://github.com/mattneub/Programming-iOS-Book-Examples/blob/master/bk2ch17p702takeAPicture/ch30p962takeAPicture/ViewController.m

我用检漏工具运行了我的代码,你猜怎么着?我也看到了你做的同样的事情。

自然地,我开始搜索Stack溢出,所有这些都变成了老土。例如:

UIImagePickerController memory leak on iOS5

甚至苹果自己的示例代码PhotoPicker (或使用UIImagePickerController选择图片和拍照)也有同样的漏洞。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22672551

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档