iPhoneのアドレス帳の連絡先のメールをNSStringとして取得する方法は?
-
10-07-2019 - |
質問
メールには複数の値が存在する可能性があることは知っていますが、それらを参照する方法がわかりません。
人を正しく取得できます。
ABRecordRef person = // getting a person;
NSString* emails = (NSString *)ABRecordCopyValue(person, kABPersonEmailProperty);
...次は何ですか? emails
変数を印刷しようとすると、次のようになります:
Emails: <NSCFType: 0x4018d40>
解決
電子メールは文字列ではなく、配列である必要があるためです。たくさんのメールを受け取ることができます!
ABMultiValueRef emails = ABRecordCopyValue(person, kABPersonEmailProperty);
CFStringRef email = ABMultiValueCopyValueAtIndex(emails, <INDEX>);
NSLog( (NSString *) email);
こちらは、MultiValueListsでできることに関するいくつかのドキュメントです
他のヒント
このエントリのタイプは ABMultiValue
です(具体的には、このフィールドのタイプは kABMultiStringProperty
です)。 &quot;複数値リストの使用&quot; これらの読み方について。 アドレス帳Objective-C定数リファレンスで各プロパティが返すもの。
また、AB関数はルールの作成。 「コピー」という単語を含む関数から取得したオブジェクトを解放する責任があります。その中。
iOS 9では、新しい Contacts Framework のABFrameworkは廃止されました:
CNContactのすべてのメールアドレスを記録する例を示します:
CNContact * yourContact = //...
for (CNLabeledValue* emailLabeledValue in yourContact.emailAddresses){
NSLog(@"%@",[emailLabeledValue value]);
}
所属していません StackOverflow