كيفية الحصول على رسائل البريد الإلكتروني عنوان فون كتاب للإتصال به كما NSStrings؟
-
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);
<وأ 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]);
}