2011-11-14 93 views
0

我昨天在10.6上使用了xcode 3.2,我升級到了xcode 4.2的10.7地址簿項目,它在xcode 3.2中運行良好,在新版本的xcode中不起作用,出現以下錯誤是:(/Users/Blake/Development/g/g/ViewController.m:37:37:{37:37-37:56}{37:48-37:56}:錯誤:C指針類型'CFStringRef '(又名 'const的結構__CFString *')到目標C指針型 '的NSString *' 需要橋接鑄造[4]​​地址簿獲取電話號碼問題

phones = [[NSMutableArray alloc] init]; 
ABAddressBookRef addressBook = ABAddressBookCreate(); 
CFArrayRef peopleRecords = ABAddressBookCopyArrayOfAllPeople(addressBook); 

for (int i = 0; i < CFArrayGetCount(peopleRecords); ++i) 
{ 
    ABRecordRef recordRef = CFArrayGetValueAtIndex(peopleRecords, i); 
    ABMultiValueRef phoneRefs = ABRecordCopyValue(recordRef, kABPersonPhoneProperty); 

    for (int a = 0; a < ABMultiValueGetCount(phoneRefs); ++a) 
    { 
     CFStringRef phoneStr = ABMultiValueCopyValueAtIndex(phoneRefs, a); 
     NSString* phoneString = (NSString*)phoneStr; 
     [phones addObjectphoneString]; 
     CFRelease(phoneStr); 
    } 

    CFRelease(phoneRefs); 
} 

CFRelease(addressBook); 
CFRelease(peopleRecords); 

for (NSString *phone in phones) 
{ 
    NSLog(@"%@", phone) ; 
} 

回答

0

餘像這樣做:

//get all phone numbers     
ABMultiValueRef phoneNumberProperty = ABRecordCopyValue(currentPerson, kABPersonPhoneProperty); 
NSArray *phoneNumbersArray = (NSArray*)ABMultiValueCopyArrayOfAllValues(phoneNumberProperty); 

然後我它爲NSString提供phoneNumbersArray。