質問

メールには複数の値が存在する可能性があることは知っていますが、それらを参照する方法がわかりません。

人を正しく取得できます。

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]);
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top