2011-01-19 4 views
0

나는이 코드를 사용하고 있기 때문에 주소록에서 전화 번호를 받고 있습니다.연락처에서 전화 번호를 가져 오는 동안 CFStringRef에서 잠길 수 있습니다.

- (IBAction)contacts { 


    ABPeoplePickerNavigationController *peoplePickerController = [[ABPeoplePickerNavigationController alloc] init]; 
    peoplePickerController.peoplePickerDelegate = self; 
    [self presentModalViewController:peoplePickerController animated:NO]; 
    [peoplePickerController release]; 

} 
- (BOOL)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker 
     shouldContinueAfterSelectingPerson:(ABRecordRef)person { 


    return YES; 
} 

- (BOOL)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker 
    shouldContinueAfterSelectingPerson:(ABRecordRef)person 
          property:(ABPropertyID)property 
          identifier:(ABMultiValueIdentifier)identifier { 
if (property == kABPersonPhoneProperty) { 
    ABMultiValueRef phonenumbers = ABRecordCopyValue(person, property); 
    CFStringRef phonenumberselected = ABMultiValueCopyValueAtIndex(phonenumbers, identifier); 

    NSString *aNSString = (NSString *)phonenumberselected; 
    if ([share_toadd length] == 0) { 
     [share_toadd appendString:aNSString]; 
    } 
    else { 
     [share_toadd appendString:@","]; 
     [share_toadd appendString:aNSString]; 
    } 

    share_textfield.text = share_toadd; 
    // Return to the main view controller. 
    [ self dismissModalViewControllerAnimated:YES ]; 
    return NO; 

    [share_textfield release]; 
} 
return YES; 

}

하지만 난 하나가 PLS 나를 도울 수 CFStringRef

Potential leak of an object allocated on line 1126 

Call to function 'ABRecordCopyValue' returns a Core Foundation object with a +1 retain count (owning reference) 

Object allocated on line 1126 is no longer referenced after this point and has a retain count of +1 (object leaked) 

에서 잠재적 누출을 얻고있다.

어떻게 해결할 수 있습니까?

답변

3

개체 사용을 마쳤 으면 CFRelease (phonenumbersselected)를 호출해야합니다.

+0

CFStringRef 다음에 CFRelease (phonenumbersselected)를 추가하십시오. phonenumberselected = ABMultiValueCopyValueAtIndex (phonenumber, identifier); 하지만 release.In이 CFStringref 사용하여 두 메모리 누수가이 어디서 내가 이것을 릴리스 할 수 있습니다. – MaheshBabu

관련 문제