目標 c を使用して、iPhone/iPad 設定領域からコードに電子メール ID とその他の詳細を取得しようとしています。どんな提案でもいただければ幸いです。前もって感謝します。
質問する
1523 次
3 に答える
0
設定でデフォルトのメールを取得することはできません。mfmailcomposeviewcontroller によってのみ処理されます。
于 2013-07-18T10:59:12.957 に答える
0
私があなたの質問を理解している限り、あなたはユーザーから個人データを取得したいと考えています。これには、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 に答える