2011-12-13 75 views
0

你好,我米以下代碼通訊錄泄露

- (BOOL)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker shouldContinueAfterSelectingPerson:(ABRecordRef)person property:(ABPropertyID)property identifier:(ABMultiValueIdentifier)identifier 
{ 


    NSString* name = (NSString *)ABRecordCopyValue(person, 

                kABPersonFirstNameProperty); 

    firstNameLabel.text = name; 

    [name release]; 

    NSString *lastName =(NSString *)ABRecordCopyValue(person, kABPersonLastNameProperty); 
    lastNameLabel.text = lastName; 
    [lastName release]; 

    if (property == kABPersonPhoneProperty) { 
     ABMultiValueRef multiPhones = ABRecordCopyValue(person, kABPersonPhoneProperty); 
     for(CFIndex i = 0; i < ABMultiValueGetCount(multiPhones); i++) { 
      if(identifier == ABMultiValueGetIdentifierAtIndex (multiPhones, i)) { 
       CFStringRef phoneNumberRef = ABMultiValueCopyValueAtIndex(multiPhones, i); 
       CFRelease(multiPhones); 
       NSString *phoneNumber = (NSString *) phoneNumberRef; 

       numberLabel.text = [NSString stringWithFormat:@"%@", phoneNumber]; 
       // [phoneNumber release]; 
       // CFRelease(phoneNumberRef); 
      } 
      //CFRelease(multiPhones); 
     } 
    } 

    [self dismissModalViewControllerAnimated:YES]; 
    return NO; 
} 

越來越名字,姓氏和手機號碼和我正在泄漏。這裏是屏幕截圖。請幫我解決泄漏

enter image description here

回答

2

請檢查代碼

if (property == kABPersonPhoneProperty) { 
     ABMultiValueRef multiPhones = ABRecordCopyValue(person, kABPersonPhoneProperty); 
     for(CFIndex i = 0; i < ABMultiValueGetCount(multiPhones); i++) { 
      if(identifier == ABMultiValueGetIdentifierAtIndex (multiPhones, i)) { 
       CFStringRef phoneNumberRef = ABMultiValueCopyValueAtIndex(multiPhones, i); 
       NSString *phoneNumber = (NSString *) phoneNumberRef; 

       numberLabel.text = [NSString stringWithFormat:@"%@", phoneNumber]; 
       // [phoneNumber release]; 
       CFRelease(phoneNumberRef); 
      } 
     } 
      CFRelease(multiPhones); 

    }