Добавление свойств к записям адресной книги
Можно добавить собственные свойства к людям и группам в адресной книге. Например, если Вы создаете небольшое приложение для управления клубом собаки, Вы могли бы добавить свойства к каждому лицу, указывающие имя и породу собаки того лица. Или если Вы создаете приложение для управления деловыми контактами, Вы могли бы добавить свойство, перечисляющее все встречи и телефонные вызовы, которые пользователь имел с тем лицом. Эти свойства сохранены в базе данных Address Book. Приложения, не знающие о новых свойствах, не затронуты ими и не изменяют их.
При решении, добавить ли свойство к записи Адресной книги, помните эти проблемы:
Избегите свойств для конфиденциальной информации, таких как номера кредитных карт. Платформа Адресной книги не обеспечивает безопасности выше того, что предоставлено OS X. Любой, у кого есть доступ для чтения и доступ для записи к домашней папке пользователя, может также считать и записать что адресная книга пользователя.
Избегите свойств, которые не полезны для всех в базе данных адресной книги. Если Вы хотите хранить информацию для просто зарегистрированного пользователя, поскольку приложения Какао относятся к Ссылке класса NSUserDefaults, и для приложений на базе С относятся к Предпочтительной Ссылке Утилит.
Используйте список мультизначения, если Вы думаете, что у лица может быть больше чем одно из того свойства. Ваш новый список мультизначения имеет те же возможности как другие списки мультизначения в адресной книге. Пользователь может выбрать основное значение в списке и может создать списки рассылки для него.
Чтобы добавить свойства к каждому лицу или группе, используйте ABPerson
или ABGroup
метод класса addPropertiesAndTypes:
. Эти процедуры берут словарь, в котором ключи являются именами новых свойств, и значения являются своими типами. Обратите внимание на то, что имена свойства должны быть уникальными. Можно хотеть использовать имена стиля обратного DNS для свойств, удостовериться, что никто больше не использует то же имя; например, org.dogclub.dogname
или com.mycompany.buildingNumber
. Тип может быть одним из типов или списком мультизначения одного из типов, перечисленных в Типах Свойства.
Следующий листинг кода добавляет пользовательское свойство, и затем удаляет его:
NSNumber* stringProperty = [NSNumber numberWithInteger:kABStringProperty]; |
NSString* testProperty = @"com.example.myProperty"; |
NSDictionary* dict = [NSDictionary dictionaryWithObject:stringProperty |
forKey:testProperty]; |
NSInteger result = [ABPerson addPropertiesAndTypes:dict]; |
NSLog(@"Added %d properties.", result); |
result = [ABPerson removeProperties:[NSArray arrayWithObject:testProperty]]; |
NSLog(@"Removed %d properties.", result); |