内存泄漏与ABPeoplePickerNavigationController?

时间:2011-02-22 06:11:31

标签: iphone objective-c memory-leaks abpeoplepickerview

我正在使用此代码在应用中显示联系人。

- (IBAction) selectContact:(id)sender {

    ABPeoplePickerNavigationController *picker = [[ABPeoplePickerNavigationController alloc] init];
    picker.peoplePickerDelegate = self;

    NSArray *displayedItems = [NSArray arrayWithObjects:[NSNumber numberWithInt:kABPersonAddressProperty], nil];
    picker.displayedProperties = displayedItems;
    [self presentModalViewController:picker animated:YES];
    [picker release];
}
根据仪器,

并且存在内存泄漏。即使我取消这样的人选择器:

- (void) peoplePickerNavigationControllerDidCancel:(ABPeoplePickerNavigationController *)peoplePicker {
    NSLog(@"peoplePickerNavigationControllerDidCancel");

    [self dismissModalViewControllerAnimated:YES];
}

......我得到了泄密:

memory leak in instruments

我发现一些开发人员的帖子声称这是SDK中的一个错误,并且已经提交了一个错误。有人可以证实吗?或指出我正确的方向。

2 个答案:

答案 0 :(得分:1)

我知道这违背了逻辑,反对你所知道的一切,但请相信我。注释掉释放选择器的行;

//-- [picker release]; this line must be commented

这很可能是Apple SDK中的一个错误

答案 1 :(得分:0)

尝试将SDK更新到最新的iOS版本,并查看是否仍然发生泄漏。如果是,请通过开发人员中心提交错误。