3

このコードを使用して、アプリに連絡先を表示しています。

- (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];
}

...リークがありました:

楽器のメモリリーク

これは SDK のバグであり、バグは既に報告されていると主張する開発者の投稿をいくつか見つけました。誰かがそれを確認できますか?または私を正しい方向に向けてください。

4

2 に答える 2

1

私はこれが論理に反し、あなたが知っているすべてに反することを知っていますが、これについて私を信頼してください。ピッカーを解放する行をコメントアウトします。

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

AppleSDKのバグである可能性が高いです

于 2011-04-13T16:14:44.787 に答える
0

SDK を最新の iOS バージョンに更新してみて、リークがまだ発生するかどうかを確認してください。その場合は、開発者センターからバグを報告してください。

于 2011-02-22T18:08:25.417 に答える