通过Xcode从iPhone / iPad设置区域获取邮件地址

时间:2013-01-23 07:51:42

标签: ios email-address

我正在尝试使用目标c从iPhone / iPad设置区域获取电子邮件ID和其他详细信息。任何建议都会受到赞赏。 提前谢谢。

3 个答案:

答案 0 :(得分:0)

据我了解您的问题,您希望从用户那里获取个人数据。为此,您需要调用AdressBook API:

AdressBook API Documentation

答案 1 :(得分:0)

这是一个有效的例子。它将所有电子邮件和全名加载到传递的数组中。以您需要的方式定制此代码,例如,您可以找到一些特定的联系人并从中获取所有信息。

- (NSMutableArray *)loadContactsFromAB:(NSMutableArray *)contacts
{
        ABAddressBookRef addressBook = ABAddressBookCreate();
        CFArrayRef allPeople = ABAddressBookCopyArrayOfAllPeople(addressBook);
        CFIndex nPeople = ABAddressBookGetPersonCount(addressBook);

        for (int i = 0 ; i < nPeople ; i++ ) {
                ABRecordRef person = CFArrayGetValueAtIndex(allPeople, i);
                NSString *firstName = ABRecordCopyValue(person, kABPersonFirstNameProperty);
                NSString *lastName = ABRecordCopyValue(person, kABPersonLastNameProperty);

                NSString *fullName;

                if (firstName && lastName) {
                        fullName = [NSString stringWithFormat:@"%@ %@", firstName, lastName];
                } else {
                        if (firstName) {
                                fullName = [NSString stringWithString:firstName];
                        } else if (lastName) {
                                fullName = [NSString stringWithString:lastName];
                        } else {
                                continue;
                        }
                }

                NSString *email = nil;
                ABMultiValueRef emails = ABRecordCopyValue(person, kABPersonEmailProperty);

                if (emails) {
                        NSArray *emailAddresses = [(NSArray *)ABMultiValueCopyArrayOfAllValues(emails) autorelease];
                        if (emailAddresses && [emailAddresses count] > 0)
                                email = [emailAddresses objectAtIndex:0];
                        CFRelease(emails);
                }
                if (email) {
                        NSDictionary *contact = [NSDictionary
                                                 dictionaryWithObjectsAndKeys:fullName, @"name",
                                                 email, @"email", nil];
                        [self addContact:contacts contact:contact];
                }
                if (firstName)
                        CFRelease(firstName);
                if (lastName)
                        CFRelease(lastName);
        }

        CFRelease(allPeople);
        CFRelease(addressBook);
        return contacts;
}

答案 2 :(得分:0)

您无法在设置中获取默认电子邮件,它只能通过mfmailcomposeviewcontroller处理

相关问题