1

ABRecordRefこれを別のクラスで後で使用できるように、リストを保存してアクセスするにはどうすればよいですか?

4

2 に答える 2

2

recordIdaddressBookのタイプのレコードから取得できます。ABRecordRef次にそれをに変換しNSStringます。に保存するNSUserDefaults

レコードを取得したいとき...

recordIdからそれをフェッチしNSUserDefaults、整数に変換します

次に使用します

    ABRecordRef myRecord =
 ABAddressBookGetPersonWithRecordID(addressBook, recordId);

したがって、以前に保存したレコードを取得します。

于 2011-08-09T12:31:00.707 に答える
1

これを試して:

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];

それだけです。

于 2011-08-08T13:08:38.123 に答える