как добавить заметку в контакт iphone? - PullRequest
1 голос
/ 28 ноября 2011

Я разрабатываю приложение, которое хранит контакты в адресной книге.Я хотел бы добавить поле заметок в моей реализации, я знаю, что для добавления номера телефона это код, который будет использоваться:

ABMultiValueRef multiPhone = ABMultiValueCreateMutable(kABMultiRealPropertyType);
ABMultiValueAddValueAndLabel(multiPhone, (__bridge_retained CFStringRef)Tel, kABWorkLabel, NULL);
ABMultiValueAddValueAndLabel(multiPhone, (__bridge_retained CFStringRef)Fax, kABPersonPhoneWorkFAXLabel, NULL);

ABRecordSetValue(contact, kABPersonPhoneProperty, multiPhone, nil);
CFRelease(multiPhone);

Я знаю, что эквивалент kABPersonPhoneProperty равен kABNoteProperty, ночто эквивалентно kABWorkLabel для поля заметки?

Спасибо

Ответы [ 2 ]

1 голос
/ 28 ноября 2011

Свойство note, обозначенное kABNoteProperty, является свойством с одним значением, а не с несколькими значениями, поэтому соответствующей метки нет. Свойство phone является многозначным: оно может содержать несколько разных значений одновременно, поэтому вам нужны метки для различения значений. Свойство note напоминает свойство имени или фамилии - они могут иметь только одно значение за раз. Для этого используйте ABRecordSetValue():

bool ABRecordSetValue (
   ABRecordRef record,
   ABPropertyID property,
   CFTypeRef value,
   CFErrorRef *error
);
1 голос
/ 28 ноября 2011

Нет эквивалента kABWorkLabel для kABNoteProperty, потому что свойство примечания является одной строкой, а не многозначным.

CFErrorRef error;
if (!ABRecordSetValue(contact, kABNoteProperty, (__bridge CFStringRef)@"hello world", &error)) {
    // handle error
}
...