2011-08-08 129 views

回答

2

您可以从ABRecordRef类型的记录中获得recordId从 addressBook然后将其转换为NSString。储存于NSUserDefaults

当你想获取该记录......

获取该recordIdNSUserDefaults,将其转换为整数

然后用

ABRecordRef myRecord = 
ABAddressBookGetPersonWithRecordID(addressBook, recordId); 

所以,你会得到您之前保存的记录。

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

这应该是它。

+0

我能够获取变量的人,我需要将这个变量人存储在nsuserdefaults或数据库中,以便我可以检索保存的数据并稍后处理任何记录..请为此指导我。 –

+0

没错,所以你需要将每个有关该人的信息存储到字典或其他集合中,然后将该字典添加到NSUserDefaults。我会在上面调整我的答案。 – Dave

+0

对不起,但即使这不是很有帮助。让我详细介绍一下。我需要创建一个包含一些文字和其他图像的图像。这部分已经结束了,现在我需要将其设置为该人员的个人资料照片,即使我能够在同一班级中完成此操作。现在,如果有人想改变添加的文本,我需要再次更改配置文件图片,因为我需要传递ABRecordRef作为参数。为此,我需要存储ABRecordRef的列表。 –