0

目標 c を使用して、iPhone/iPad 設定領域からコードに電子メール ID とその他の詳細を取得しようとしています。どんな提案でもいただければ幸いです。前もって感謝します。

4

3 に答える 3

0

設定でデフォルトのメールを取得することはできません。mfmailcomposeviewcontroller によってのみ処理されます。

于 2013-07-18T10:59:12.957 に答える
0

私があなたの質問を理解している限り、あなたはユーザーから個人データを取得したいと考えています。これには、AddressBook API を呼び出す必要があります。

AddressBook API ドキュメント

于 2013-01-23T07:59:29.190 に答える
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;
}
于 2013-01-23T08:26:43.373 に答える