この時点で、これらのリークがCoreDataに関連するかどうかわかりません。この同じアプリの他の部分で明らかに異なる理由 - 私の他の質問を参照してください。another stack overflow questionABPeoplePickerNavigationControllerとコアデータを使用してアプリで48バイトのリークが発生する
しかし、関係がないと仮定して、私は、ユーザーがオプションを選択することに基づいて、ABPeoplePickerを表示するviewControllerを持っています。しかし、連絡先を選択するかどうかにかかわらず、私が漏れているピッカーを提示するだけのようです。
- (void)peoplePickerNavigationControllerDidCancel:(ABPeoplePickerNavigationController *)peoplePicker
{
[self dismissModalViewControllerAnimated:YES];
}
- (BOOL)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker
shouldContinueAfterSelectingPerson:(ABRecordRef)person
{
return YES;
}
- (BOOL)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker
shouldContinueAfterSelectingPerson:(ABRecordRef)person
property:(ABPropertyID)property
identifier:(ABMultiValueIdentifier)identifier
{
ABMultiValueRef emails = ABRecordCopyValue(person, property);
if(userEmailString)
[userEmailString release];
userEmailString = (NSString*)ABMultiValueCopyValueAtIndex(emails, identifier);
CFRelease(emails);
[[NSNotificationCenter defaultCenter] postNotificationName:@"recipientEmailDidUpdateNotification"
object:self];
return NO;
}
そして、念のため、userEmailStringがコントローラの保持NSStringのプロパティである(意味:
- (void)showPeoplePickerController
{
ABPeoplePickerNavigationController *picker = [[ABPeoplePickerNavigationController alloc] init];
picker.displayedProperties = [NSArray arrayWithObject:[NSNumber numberWithInt:kABPersonEmailProperty]];
picker.peoplePickerDelegate = self;
[self presentModalViewController:picker animated:YES];
[picker release];
}
および以下として実装デリゲート方法:
ピッカーを提示するためのコードであります私もself.userEmailString = blahのために行くことができます)。
これらはInstrumentsのスクリーンショットであり、漏れを報告しています。しかし、ピッカーがリリースされていないと思っていることに気づいてください。私はCFRelease()を代わりにやろうとしました...でも同じです。とにかく