iphone - 将联系人存储在 iPhone 自己的应用程序中

标签 iphone ios core-data abaddressbook

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

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

  2. 存储多值属性时出现问题:如果任何联系人有多个号码,那么我们会收到多个号码值。核心数据中有可用的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/

相关文章:

ios - Swift CollectionView第一个单元格添加用户按钮,并从图像数组加载其他单元格

ios - 有人可以为我提供 "refreshObject:mergeChanges:YES"的说明吗?

iPhone 应用程序崩溃且没有日志(仅具有分发配置文件)

ios - 有什么方法可以在不使用 IDFA 的情况下为设备生成唯一 ID?

ios - 来自 iOS "Do not add subviews directly to the visual effect view itself"的警告

iphone - 将 ios 应用程序部署到不同状态的 12-15 部 iPhone 的最快方法是什么?

ios - Swift 中的 EXC_BAD_ACCESS 错误代码

ios - 创建 CoreData 关系导致代码中出现 20 多个错误

iphone - 如何使用陀螺仪和加速度计计算行驶距离?

iphone - iOS设计PNG文件