2011-12-07 101 views
0

我想創建我的自定義地址簿,就像iphone的地址簿一樣,我將根據自己的需要更改一些字段。iPhone的整個地址簿數據

所以我想將iPhone的整個地址簿數據複製到我的SQL數據庫。請爲我提供任何鏈接或參考。

需要知道DB操作來存儲地址簿數據

感謝

+1

官方iOS文檔如何:http://developer.apple.com/library/ios/#documentation/ContactData/Conceptual/AddressBookProgrammingGuideforiPhone/Introduction.html – millimoose

+0

嗨,我想知道數據庫操作來存儲地址簿數據 – user198725878

回答

1

可以加載地址簿條目通過此過程中NSMutable數組,然後你可以在你的應用程序做任何你想要到:

-(NSMutableArray*)loadContactsFromAddressBook{ 

NSMutableArray * contacts = [[NSMutableArray alloc] init]; 
ABAddressBookRef addressBook = ABAddressBookCreate(); 
CFArrayRef allPeople = ABAddressBookCopyArrayOfAllPeople(addressBook); 
CFIndex nPeople = ABAddressBookGetPersonCount(addressBook); 

for (int i = 0; i < nPeople; i++) 
{ 

    ABRecordRef ref = CFArrayGetValueAtIndex(allPeople, i); 

    NSString *fname = (NSString*)ABRecordCopyValue(ref, kABPersonFirstNameProperty);   
    NSString *lname = (NSString*)ABRecordCopyValue(ref, kABPersonLastNameProperty); 

    NSString *name; 
    NSString* phoneNumber; 

    if (lname) { 
     name = [fname stringByAppendingFormat: @" %@", lname]; 
    } else { 
     name = fname; 
    } 

    ABMultiValueRef phoneNumbers = ABRecordCopyValue(ref, kABPersonPhoneProperty); 
    int count = ABMultiValueGetCount(phoneNumbers); 

    if (count > 0 && name) { 

     phoneNumber = (NSString*)ABMultiValueCopyValueAtIndex(phoneNumbers, 0); 

     [contacts addObject:[NSMutableDictionary dictionaryWithObjectsAndKeys:name, @"member_name", 
          phoneNumber, @"phone", 
          @"NO", @"invited", 
          nil] ] ; 
    } 

    NSSortDescriptor *aSortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"member_name" ascending:YES]; 
    [contacts sortUsingDescriptors:[NSArray arrayWithObject:aSortDescriptor]]; 
} 
return [contacts autorelease]; 
} 

你需要添加AddressBook.framework和AddressBookUI。框架框架添加到您的項目中,並在您使用此方法的類中導入AddressBook/AddressBook.h文件。

希望這會有所幫助。

2

而不是複製整個地址簿到DB(同步是永遠的痛),爲什麼不保存在您的擴展數據數據庫與您的數據庫數據參考和地址簿實體?如果你這樣做,你可以在你的數據庫中引用一個ABRecordRef id。