2011-08-08 16 views
1

ABRecordRefのリストを保存してアクセスするには、どうすればこのクラスを別のクラス以降で使用できますか?それでなければなりませんABRecordRefの配列を格納

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

答えて

2

recordIdは、タイプABRecordRefのレコードから addressBookから入手できます。NSStringに変換してください。あなたは、レコードを取得したい場合は...

NSUserDefaultsからrecordIdは、だから、あなたが得る

ABRecordRef myRecord = 
ABAddressBookGetPersonWithRecordID(addressBook, recordId); 

を使用し、整数

でそれを変換することをフェッチNSUserDefaults

に保管してください前に保存したレコード。

1

はこれを試してみてください。

+0

私は可変人をフェッチすることができます。私はこの変数personをnsuserdefaultsまたはデータベースに保存して、保存されたデータを取得して後で任意のレコードを操作できるようにします。 –

+0

右のように、個人に関する各情報を辞書または他のコレクションに保存し、その辞書をNSUserDefaultsに追加する必要があります。私は上記の私の答えを調整します。 – Dave

+0

申し訳ありませんが、これはあまり役に立ちません。詳細な説明をしましょう。私はテキストとそれに別のイメージを含むイメージを作成する必要があります。その部分はすでに終わっています。私は同じクラスにいる場合でもこれを行うことができる人のプロフィール写真としてこれを設定する必要があります。今、人が追加されたテキストを変更したいのであれば、私はABRecordRefをパラメータとして渡す必要があるためにプロフィールの写真を再度変更する必要があります。このため私はABRecordRefのリストを格納する必要があります。 –