كيفية الحصول على رسائل البريد الإلكتروني عنوان فون كتاب للإتصال به كما NSStrings؟

StackOverflow https://stackoverflow.com/questions/1645567

سؤال

وأنا أعلم أنه لن يكون هناك قيم متعددة لرسالة بريد إلكتروني، ولكن أنا غير متأكد من كيفية تصفح خلالهم.

ويمكنني الحصول على الشخص بشكل صحيح.

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);

<وأ href = "http://developer.apple.com/mac/library/documentation/UserExperience/Reference/AddressBook/Classes/ABMultiValue_Class/Reference/Reference.html#//apple_ref/occ/cl/ABMultiValue" يختلط = "noreferrer"> هنا غير بعض المستندات على أشياء يمكنك القيام به مع MultiValueLists

نصائح أخرى

ونوع هذا الدخول هو ABMultiValue (على وجه التحديد، ونوع هذا الحقل هو kABMultiStringProperty). انظر "استخدام قوائم Multivalue" لكيفية قراءة هذه. انظر في دفتر العناوين الهدف-C الثوابت المرجعي للحصول على ما كل عوائد الملكية.

وأيضا، تذكر أن وظائف AB تخضع لفي إنشاء قاعدة . أنت مسؤول عن الافراج عن الكائنات التي تحصل عليها من وظيفة مع كلمة "نسخ" في ذلك.

في دائرة الرقابة الداخلية 9 قد تم إهمال في ABFramework ل<القوي> اتصالات الإطاري الجديد : ل

وتظهر لك مثالا لتسجيل كل عنوان البريد الإلكتروني لCNContact:

CNContact * yourContact = //...

for (CNLabeledValue* emailLabeledValue in yourContact.emailAddresses){
    NSLog(@"%@",[emailLabeledValue value]);
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top