【问题标题】:How can i get all contacts from particular Group in Addressbook?如何获取通讯簿中特定组的所有联系人?
【发布时间】:2012-09-27 11:26:56
【问题描述】:

您好,我的 iPhone 通讯录中有多个群组,其中包含多个联系人。例如:

iPhone 通讯录、Group1、Group2 等

每个组都包含联系人信息,例如名字、姓氏、电子邮件、电话号码。现在通过选择任何组,我应该在其中获得添加联系人的所有详细信息。谁能指导我如何获取特定组的所有联系人详细信息?

请需要一些指导。

【问题讨论】:

    标签: iphone objective-c ios addressbook


    【解决方案1】:
    CFErrorRef error = NULL;
    ABAddressBookRef addrBook = ABAddressBookCreate();
    CFArrayRef groups = ABAddressBookCopyArrayOfAllGroups(addrBook);
    CFIndex numGroups = CFArrayGetCount(groups);
    for(CFIndex idx=0; idx<numGroups; ++idx) {
        ABRecordRef groupItem = CFArrayGetValueAtIndex(groups, idx);
    
        CFArrayRef members = ABGroupCopyArrayOfAllMembers(groupRef);
        if(members) {
            NSUInteger count = CFArrayGetCount(members);
            for(NSUInteger idx=0; idx<count; ++idx) {
                ABRecordRef person = CFArrayGetValueAtIndex(members, idx);
    
                // your code
            }
            CFRelease(members);
        }
    }
    
    CFRelease(groups);
    CFRelease(addrBook);
    

    此代码不保证防漏,因此请仔细检查。它或多或少是正确的。

    【讨论】:

      【解决方案2】:

      一切都在文档中解释,所以请告诉使用你不明白的地方。你尝试了什么?你得到了什么,你有什么错误?

      如果您想与联系人合作,除了非常完整的Address Book Programming Guide,您当然还有the Address Book Framework Reference,尤其是the ABGroup Reference Documentation 可以与群组合作。后者包含an explicitly a method to get all members of a group。所以你应该在这里拥有你需要的一切。

      CFArrayRef cfmembers = ABGroupCopyArrayOfAllMembers(group);
      NSArray* members = (NSArray*)cfmembers; // working with NSArray is usually easier that CFArrays so I like using toll-free bridging
      for(ABRecordRef person in members)
      {
        // ... your code ...
      }
      CFBridgingRelease(cfmembers); // release memory when done, following the usual memory mgmt rules
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-09-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多