我是 iPhone 应用程序开发新手。我的应用程序有自己的联系人屏幕,其中包含电话簿的所有联系人以及单个列表中的应用程序联系人。 我的应用程序应该将所有联系人存储在其数据库中,它不应该像联系人选择器打开那样显示联系人屏幕。 为此,我创建了联系人实体来将联系人存储在我的应用程序的持久存储中。 我已经使用 AddessBook API 读取了 iphone 的联系人。我在这方面遇到了一些问题。
存储联系人图像时出现问题:为了获取联系人图像,我使用了 ABPersonCopyImageData。它返回 CFDataRef。我们如何将 CFDataRef 存储在数据库中并检索它。因为实体的属性类型中只有原始数据类型可用(NSArry类型不可用)。
存储多值属性时出现问题:如果任何联系人有多个号码,那么我们会收到多个号码值。核心数据中有可用的API或机制吗?或者我们必须使用自定义机制(例如使用分隔符)来存储它们。
最佳答案
如果我是你,那么我会将图像存储在文档目录中,将 CFDataRef 转换为 NSData,然后转换为 UIImage 你可以像这样将 CFDataRef 转换为 NSData
NSData *myData = (NSData *)myCFDataRef;
然后像这样将其转换为 UIImage
UIImage *image=[UIImage imageWithData:myData];
并将其存储在具有不同名称的文档目录中,例如 test_1.png,其中 1 是整数,每次为新图像名称递增
并且在数据库中仅存储位置字符串
关于iphone - 将联系人存储在 iPhone 自己的应用程序中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16331647/