2011-03-22 52 views
0

我正在通過我的應用程序在iPhone中添加聯繫人。有沒有其他邏輯?如何在iphone中檢查組的存在(是否可用組)?

有人可以告訴我我怎麼檢查組的存在?

我正在使用follwing代碼來檢查組的存在,但可能是b'co​​z循環我的應用程序在iPhone中崩潰。

// AB =通訊錄對象

CFArrayRef a = ABAddressBookCopyArrayOfAllGroups(ab); 

for (CFIndex i = CFArrayGetCount(a)-1; i >= 0; i--) 

{ 

    ABRecordRef  g = (ABRecordRef) CFArrayGetValueAtIndex(a, i); 



    CFStringRef  s = (CFStringRef) ABRecordCopyValue(g, kABGroupNameProperty); 

    CFComparisonResult r = CFStringCompare((CFStringRef)name, s, 0); 

    CFRelease(s); 



    if (r == kCFCompareEqualTo) 

    { 

     group = CFRetain(g); 

     break; 

    } 

} 

CFRelease(a); 



CFErrorRef err = nil; 

if (!group) 

{ 

    group = ABGroupCreate(); 

    ABRecordSetValue(group, kABGroupNameProperty, name, &err); 

    if (!err) 

    { 

     ABAddressBookAddRecord(ab, group, &err); 

    } 

    if (!err) 

    { 

     ABAddressBookSave(ab, &err); 

    } 

} 

if (err) 

{ 

    CFRelease(err); 

} 

回答

1

從蘋果文檔:

您可以通過使用該功能ABAddressBookGetGroupWithRecordID記錄標識符找到特定的組。您還可以使用ABAddressBookCopyArrayOfAllGroups檢索地址簿中所有組的數組,並使用功能ABAddressBookGetGroupCount來計算地址簿中有多少組。

您可以編程方式修改組的成員。要將人員添加到組中,請使用功能ABGroupAddMember;要從組中刪除某個人,請使用功能ABGroupRemoveMember。在人員記錄可以添加到組之前,它必須已經在通訊簿數據庫中。如果您需要同時向組和數據庫添加新的人員記錄,則必須先將其添加到地址簿數據庫,保存數據庫,然後將人員記錄添加到組中。**

更多plz閱讀蘋果文檔。

http://developer.apple.com/library/ios/#documentation/ContactData/Conceptual/AddressBookProgrammingGuideforiPhone/Chapters/DirectInteraction.html#//apple_ref/doc/uid/TP40007744-CH6-SW1

+2

有一些實用功能在以下文件中定義的,可能對你有用http://itinybag.googlecode.com/svn-history/r58/trunk/iTinyBag/Classes/ABContactsHelper.m – Jhaliya 2011-03-22 07:09:29

+0

One more http://www.iphonedevsdk.com/forum/iphone-sdk-development/41635-how-get-group-code-recordid.html – Jhaliya 2011-03-22 07:13:51