【问题标题】:How to get Custom label and value of the Email in ABAddressBook如何在 ABAddressBook 中获取电子邮件的自定义标签和值
【发布时间】:2014-02-24 02:53:42
【问题描述】:

在 iPad 的地址簿中,当我尝试添加电子邮件时,我可以选择设置自己的自定义标签并提供电子邮件,

问题: 我无法获取该特定标签及其值,我可以从地址簿中获取其他的 iCloud、家庭、工作电子邮件 ID。

这是与我所做的相关的代码:

    //Email
            ABMultiValueRef emailID = ABRecordCopyValue(recordRef, kABPersonEmailProperty);
            CFIndex emailCount = ABMultiValueGetCount(emailID);
    //        PSLog(@"counter %ld",emailCount);
            NSString *emailLabel;
            NSMutableArray *emailLabelsMutArr = [NSMutableArray new];

            if (emailCount == 0) {
                [nameEmailMutDict setValue:@"No Mail ID" forKey:kEmailKey];
            }
            else
            {
                for(CFIndex emailCounter = 0; emailCounter < emailCount; emailCounter++)
                {
                    NSMutableDictionary *dict = [NSMutableDictionary dictionary];
                    [dict setValue:contactFirstName forKey:kEmailFirstNameKey];
                    [dict setValue:contactLastName forKey:kEmailLastNameKey];
                    emailLabel = (__bridge NSString*)ABMultiValueCopyLabelAtIndex(emailID, emailCounter);
                    [emailLabelsMutArr addObject:emailLabel];
                    NSString *strEmail = (__bridge NSString *)(ABMultiValueCopyLabelAtIndex(emailID, emailCounter));

                    if ([emailLabel isEqualToString:@"_$!<Home>!$_"]) {
                        strEmail = (__bridge NSString*)ABMultiValueCopyValueAtIndex(emailID, emailCounter);
                        [dict setValue:strEmail forKey:kEmailKey];
                        contactsObject.contactEmailModal = strEmail;
                        [self.recordsMutableArray addObject:dict];
                        continue;

                    }
            }
}

【问题讨论】:

    标签: ios contacts addressbook abaddressbook


    【解决方案1】:

    最后我得到了这个答案https://stackoverflow.com/a/5369704/1079929

    并使用以下代码得到我的输出: ABMultiValueRef emails = ABRecordCopyValue(recordRef, kABPSersonEmailProperty);

    for(CFIndex j = 0; j < ABMultiValueGetCount(emails); j++)
            {
                NSMutableDictionary *dict = [NSMutableDictionary dictionary];
                [dict setValue:contactFirstName forKey:kEmailFirstNameKey];
                [dict setValue:contactLastName forKey:kEmailLastNameKey];
    
                CFStringRef emailIDRef = ABMultiValueCopyValueAtIndex(emails, j);
                CFStringRef locLabel = ABMultiValueCopyLabelAtIndex(emails, j);
                NSString *emailLabel =(NSString*) ABAddressBookCopyLocalizedLabel(locLabel);
                //CFRelease(phones);
                NSString *emailID = (NSString *)emailIDRef;
                [dict setValue:emailID forKey:kEmailKey];
                contactsObject.contactEmailModal = emailID;
                [self.recordsMutableArray addObject:dict];
                NSLog(@"emailID  - %@ emailLabel %@", emailID, emailLabel);
            }
    

    【讨论】:

    • 如果它是正确的,你可以接受你自己的答案。
    • 在第一个 21 小时内我们需要接受这个答案,时间已经过去了
    猜你喜欢
    • 1970-01-01
    • 2019-04-25
    • 2019-01-13
    • 2021-08-14
    • 2012-11-07
    • 2018-01-07
    • 2018-11-03
    • 2011-03-06
    • 2013-06-04
    相关资源
    最近更新 更多