0

我是 iPhone 应用程序开发的新手。我的应用程序有自己的联系人屏幕,其中包含电话簿的所有联系人以及单个列表中的应用程序联系人。我的应用程序应该将所有联系人存储在其数据库中,它不应该像联系人选择器打开那样显示联系人屏幕。为此,我创建了联系人实体以将联系人存储在我的应用程序的持久存储中。我已经使用 AddessBook API 阅读了 iphone 的联系人。我在这方面面临一些问题。

  1. 存储联系人图像的问题:为了获取联系人图像,我使用了 ABPersonCopyImageData。它返回 CFDataRef。我们如何将 CFDataRef 存储在数据库中并检索它。因为实体的属性类型中只有原始数据类型可用(NSArry 类型不可用)。

  2. 存储多值属性的问题:如果任何联系人有多个号码,那么我们会收到多个号码值。核心数据中是否有任何 API 或机制可用?或者我们必须使用自定义机制来存储它们,比如使用分隔符。

4

2 回答 2

1

如果我是你,那么我会将图像存储在文档目录中,将 CFDataRef 转换为 NSData,然后 UIImage 你可以像这样将 CFDataRef 转换为 NSData

NSData *myData = (NSData *)myCFDataRef;

然后像这样将其转换为 UIImage

UIImage *image=[UIImage imageWithData:myData];

并将其存储在具有不同名称的文档目录中,例如 test_1.png 其中 1 是整数,您每次都会为新图像名称递增

并且在数据库中仅存储位置字符串

于 2013-05-02T07:20:14.107 回答
0

问题 1:-您可以将 CFDataRef 转换为 UIImage 并使用数据类型 “Transformable”将其存储在数据库中

问题 2:-您必须使用任何分隔符保存它,或者您可以为此创建不同的属性。

希望这对您有所帮助。

于 2013-05-02T06:41:14.697 回答