странные 48-байтовые утечки в приложении с использованием ABPeoplePickerNavigationController и Core Data - PullRequest
0 голосов
/ 20 марта 2012

На данный момент я не уверен, могут ли эти утечки быть связаны с CoreData или чем, так как я испытал 48-байтовые утечки strdup в других частях этого же приложения по очевидно другим причинам - см. Мой другой вопрос: другой вопрос переполнения стека

Но, не имея отношения, у меня есть viewController, который, основываясь на выборе пользователем опции, представляет ABPeoplePicker. Тем не менее, кажется, просто представляя сборщик, который я пропускаю, независимо от выбора контакта или нет.

Код для представления сборщика:

- (void)showPeoplePickerController
{
    ABPeoplePickerNavigationController *picker = [[ABPeoplePickerNavigationController alloc] init];
    picker.displayedProperties = [NSArray arrayWithObject:[NSNumber numberWithInt:kABPersonEmailProperty]];
    picker.peoplePickerDelegate = self;
    [self presentModalViewController:picker animated:YES];
    [picker release];
}

И методы делегата реализованы следующим образом:

- (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 контроллера (имеется в виду, что я мог бы также использовать self.userEmailString = blah).

Это скриншоты из приборов, сообщающие об утечке. Но обратите внимание, что он считает, что сборщик не был выпущен, хотя я звоню релизу после его представления. И я также попытался сделать CFRelease () вместо ... но все тот же.

enter image description here

enter image description here

enter image description here

1 Ответ

1 голос
/ 27 марта 2012

В любом случае, да .. утечки в SDK.

...