Хранить массив ABRecordRef - PullRequest
       24

Хранить массив ABRecordRef

1 голос
/ 08 августа 2011

Как мы можем сохранить и получить доступ к списку ABRecordRef, чтобы мы могли использовать его в другом классе и позже?

Ответы [ 2 ]

2 голосов
/ 09 августа 2011

Вы можете получить recordId из записи типа ABRecordRef из адресной книги. Затем преобразовать ее в NSString.Сохраните его в NSUserDefaults

Если вы хотите извлечь запись ...

извлечь это recordId из NSUserDefaults, конвертируйте его в целое число

, затем используйте

    ABRecordRef myRecord =
 ABAddressBookGetPersonWithRecordID(addressBook, recordId);

Таким образом, вы получите запись, которую вы сохранили ранее.

1 голос
/ 08 августа 2011

Попробуйте:

ABAddressBookRef addressBook = ABAddressBookCreate();
ABRecordRef person = ABRecordGetRecordID(1);  // Or whatever you're using to get the record.

// do this for each piece of information you need:
NSString *firstName = (NSString *)ABRecordCopyValue(person, kABPersonFirstNameProperty);
NSString *lastName = (NSString *)ABRecordCopyValue(person, kABPersonLastNameProperty);

// Get your receiving dict ready:
NSMutableDictionary *personDict = [NSMutableDictionary dictionary];

// then test them for a value (don't want nil values in the dictionary)
// Add each value as you test it.
if (firstName) {
    [personDict setObject:firstName forKey:@"FistName"];
}
if (lastName) {
    [personDict setObject:lastName forKey:@"LastName"];
}

// Add the personDict to NSUserDefaults:
[[NSUserDefaults standardDefaults] setObject:personDict forKey:@"MyPersonsDictionary"];

// Clean up after yourself:
[firstName release];
[lastNmae release];

Это должно быть.

...