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

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


person Baby Groot    schedule 08.08.2011    source источник


Ответы (2)


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

Когда вы хотите получить запись...

извлеките это recordId из NSUserDefaults, преобразуйте его в целое число

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

    ABRecordRef myRecord =
 ABAddressBookGetPersonWithRecordID(addressBook, recordId);

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

person Dimple    schedule 09.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];

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

person Dave    schedule 08.08.2011
comment
я могу получить переменный человек, который мне нужен, чтобы сохранить этот переменный человек в nsuserdefaults или базе данных, чтобы я мог получить сохраненные данные и позже манипулировать любой записью. Пожалуйста, помогите мне в этом. - person Baby Groot; 08.08.2011
comment
Итак, вам нужно сохранить каждую часть информации о человеке в словаре или другой коллекции, а затем добавить этот словарь в NSUserDefaults. Я поправлю свой ответ выше. - person Dave; 08.08.2011
comment
Извините, но даже это не так полезно. Дам подробное описание. Мне нужно создать изображение с текстом и другим изображением на нем. Эта часть уже закончена, теперь мне нужно установить это как изображение профиля человека, даже если я могу это сделать, если он находится в том же классе. Теперь, если человек хочет изменить добавленный текст, мне нужно снова изменить изображение профиля, для этого мне нужно передать ABRecordRef в качестве параметра. Для этого мне нужно сохранить список ABRecordRef. - person Baby Groot; 08.08.2011