首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >内存管理问题

内存管理问题
EN

Stack Overflow用户
提问于 2011-04-03 17:27:50
回答 2查看 118关注 0票数 0

以下是示例代码,我正在尝试将iphone的联系人导入到我的应用程序中。

代码语言:javascript
复制
-(IBAction)import_Clicked:(id)sender{

ABPeoplePickerNavigationController *picker = [[ABPeoplePickerNavigationController alloc] init];   //leaking here
picker.peoplePickerDelegate = self;
// Display only a person's phone, email, and birthdate
NSArray *displayedItems = [NSArray arrayWithObjects:[NSNumber numberWithInt:kABPersonPhoneProperty], 
                           [NSNumber numberWithInt:kABPersonEmailProperty],
                           [NSNumber numberWithInt:kABPersonBirthdayProperty], nil];


picker.displayedProperties = displayedItems;
[self presentModalViewController:picker animated:YES];
[picker release];}  

我在仪器上运行了这个,它显示我100%的泄漏,我分配了一个导航控制器。我是在persentmodalviewcontroller之后意识到这一点的。我还能在哪里出错。有任何帮助,请……

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-04-03 17:40:04

这里似乎有一个奇怪的SDK bug……阅读苹果官方开发论坛here,了解更多信息和解决方案。

票数 0
EN

Stack Overflow用户

发布于 2011-04-03 17:36:34

奇怪的是,这在我看来不像是泄漏,听说Instruments (很少)报告错误的泄漏。

编辑:忘记后面的内容,改为阅读bbum注释:)

您是否可以尝试删除[picker release],然后使用autorelease

代码语言:javascript
复制
BPeoplePickerNavigationController *picker = [[[ABPeoplePickerNavigationController alloc] init] autorelease];

然后看看仪器是否仍然报告泄漏?如果不是,请保留您的原始代码并忽略该错误警报...

这几乎是相同的,但使用NSAutoReleasePool可能会改变工具的行为。

还请注意,像你这样显式发布比自动发布更干净。

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

https://stackoverflow.com/questions/5528715

复制
相关文章

相似问题

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