将 vCard 数据直接添加到系统地址簿

2023-12-24

我正在设计一个QR码阅读器,它需要检测并导入vCard格式(.vcf)的联系人卡片。

有没有办法直接将名片数据添加到系统地址簿中,或者我需要自己解析vCard并单独添加每个字段?


如果您在 iOS 5 或更高版本上运行,以下代码应该可以解决问题:

#import <AddressBook/AddressBook.h>

// This gets the vCard data from a file in the app bundle called vCard.vcf
//NSURL *vCardURL = [[NSBundle bundleForClass:self.class] URLForResource:@"vCard" withExtension:@"vcf"];
//CFDataRef vCardData = (CFDataRef)[NSData dataWithContentsOfURL:vCardURL];

// This version simply uses a string. I'm assuming you'll get that from somewhere else.
NSString *vCardString = @"vCardDataHere";
// This line converts the string to a CFData object using a simple cast, which doesn't work under ARC
CFDataRef vCardData = (CFDataRef)[vCardString dataUsingEncoding:NSUTF8StringEncoding];
// If you're using ARC, use this line instead:
//CFDataRef vCardData = (__bridge CFDataRef)[vCardString dataUsingEncoding:NSUTF8StringEncoding];

ABAddressBookRef book = ABAddressBookCreate();
ABRecordRef defaultSource = ABAddressBookCopyDefaultSource(book);
CFArrayRef vCardPeople = ABPersonCreatePeopleInSourceWithVCardRepresentation(defaultSource, vCardData);
for (CFIndex index = 0; index < CFArrayGetCount(vCardPeople); index++) {
    ABRecordRef person = CFArrayGetValueAtIndex(vCardPeople, index);
    ABAddressBookAddRecord(book, person, NULL);
}

CFRelease(vCardPeople);
CFRelease(defaultSource);
ABAddressBookSave(book, NULL);
CFRelease(book);

确保链接到项目中的 AddressBook 框架。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 vCard 数据直接添加到系统地址簿 的相关文章

  • 推送通知 applicationIconBadgeNumber 在 ios7 中未更新

    我在应用程序委托中使用以下代码来接收远程通知 但当应用程序在后台时 其 applicationIconBadgeNumber 以红色 白色显示在应用程序图标的左上角 不会更新 当推送通知收到时 它会以幻灯片动画出现在屏幕的右上角 通知有效负
  • 升级到 SDK 4.1 后 Facebook 登录失败(总是 isCancelled)

    我已在 iOS 应用程序中将 Facebook SDK 从 3 21 1 升级到 4 1 已上线 我仔细遵循升级指南 并实施了新的登录方法 我使用的代码是 Facebook 文档中提供的代码 但是自从升级以来 每次我尝试登录 设备或模拟器
  • Objective-C 属性的默认属性是什么?

    当您未在 Objective C 中列出任何属性时 属性的默认属性是什么 例如 如果我这样写 property float value 默认值是什么 比如它是只读的 它是否保留 等等 默认 隐式值为atomic readwrite and
  • 哪里可以找到关于 swift Alert (UIAlertController) 的明确解释?

    对此找不到清晰且信息丰富的解释 在某个主题上搜索了一段时间后 我没有 找到清晰的解释 即使在它的类参考中UIAlertController 参考 https developer apple com library ios documenta
  • 使用 Swift 的核心数据瞬态值

    有谁知道 或者有一个例子 如何使用 Swift 处理核心数据瞬态值 我知道在属性之前使用 NSManaged 但无法弄清楚如何编写逻辑以使用 Swift 构建瞬态值 复选标记短暂的数据模型中特定属性的字段 例如sectionTitle 为该
  • 从两个相交的多边形创建新的 MKPolygon

    我知道确实有一个具体的问题讨论了这一点 但它有点老了 如果可能的话 我想了解更多技术性的知识 首先看一下这个截图 https www dropbox com s f94q3qaxrog0ec9 intersections png https
  • 快速 Firebase 在异步任务中返回

    我在 swift 2 中遇到了适用于 iOS 的 Firebase SDK 的问题 我正在尝试将图片设置为从 Firebase 存储下载 当我调用该函数时 它返回 nil 我认为这是因为 Firebase sdk 提供的下载任务是异步的 因
  • iOS:AVPlayer 视频预加载

    我正在使用 AVPlayer 来播放视频 它们的长度很短 2 5秒 它们以随机顺序播放 问题是 当更改视频并开始播放新视频时 设备会滞后很短的时间 但我不希望更改流畅 有没有办法用 AVPlayer 预加载视频 尝试使用AVQueuePla
  • ios file:///var/mobile/Containers 和 file:///private/var/mobile/Containers 之间有什么区别吗?

    它们是不同的还是简单的别名 我通过运行以下命令获取 private var FileManager default contentsOfDirectory at folder includingPropertiesForKeys optio
  • iPhone 旋转时 CALayer 自动旋转

    我有一个 UIViewController 其中我将 CALayer 子类添加到视图层 self view layer addSublayer myObject backgroundLayer 当我旋转设备时 视图会旋转 但 CALayer
  • 从实时照片中提取视频部分

    有谁知道如何从实时照片中提取视频部分 我正在开发一个将 Live Photos 转换为 GIF 的应用程序 第一步是从 Live Photo 中获取视频文件 看起来这应该是可能的 因为如果你将手机插入 Mac 你就可以看到单独的图像和视频文
  • 为什么这段代码不能产生正确的输出? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 给定一个字符串和一个数字 该函数将从
  • 在 Swift 中上传带有其他参数的多张图片

    现在 我通过下面给出的代码仅将一张图像上传到服务器端脚本上的服务器 现在我有一个数组UIImage 我想知道如何使用UIImageJPEGRepresentation myImageView image 0 1 将所有图像发布到UIImag
  • 在 iOS8.3 上显示警报视图时不必要地触发 iOS 键盘通知

    我们正在观察 iOS 8 3 上键盘将显示和隐藏通知的异常行为 视图控制器 监听键盘通知 有一个文本字段 单击并点击提交按钮后 该方法首先从文本字段中退出第一响应者 并显示一条警报以通知警告 一切正常 它会关闭键盘并按预期显示警报 也调用
  • 在 Objective-C 中使用类别重写方法

    我可以使用类类别来覆盖已使用类别实现的方法吗 像这样 1 原始方法 BOOL method return true 2 重写方法 BOOL method NSLog error return true 这可行吗 还是非法的 From 苹果文
  • 用于 RSS feed 解析的 Objective-C 库?

    我正在为 iOS 应用程序寻找一个 Objective C 库 该库将解析并显示 RSS 提要中的文章 具体来说 我正在寻找为新闻网站制作一个应用程序 如果可能的话 该框架应该能够使用各种 RSS XML 结构 嗯 有两个不同的新闻网站 一
  • 检查indexPath处的单元格在屏幕UICollectionView上是否可见

    我有一个CollectionView向用户显示图像 我在后台下载这些 下载完成后 我调用以下函数来更新collectionViewCell并显示图像 func handlePhotoDownloadCompletion notificati
  • 应用内购买导致偶尔崩溃

    我在互联网上搜索了这方面的帮助 但没有结果 我的应用程序已在应用程序商店中上线 少数用户报告应用程序在进行应用内购买后冻结并崩溃 我的游戏中唯一的 IAP 它基本上解锁了完整版本 即使他们重新启动设备并尝试继续 设备也会再次崩溃 我无法重现
  • 获取 PHAsset 的本地文件路径

    我希望我的用户能够在 Instagram 上分享一张照片 并且我需要获取该照片的本地文件目录 不过 我将图像作为 PHAsset 获取 而不是 ALAsset 所有其他答案似乎都涵盖了这个主题 查看 PHAsset 文档 我没有看到 本地目
  • IOS - 委托与通知

    想听听您对以下架构的看法 在我的应用程序中 我有一个处理异步登录的静态类 LoginManager 登录阶段完成后 应用程序应该做出响应并转换到另一个状态 我有2条实施建议 使用委托 import Foundation protocol L

随机推荐

  • HQL 查询检查集合大小是否为 0 或空

    我尝试生成一个 HQL 查询 其中包含具有空约会集合的用户 由 OneToMany 映射 SELECT u FROM User u JOIN u appointments uas WHERE u status 1 AND uas time
  • HSQLDB 可以处理几百万行吗?

    我正在开发一个需要数据库的单用户应用程序 大多数表都具有合理数量的数据 但也有一些表可能会增长到数百万行 我的任何查询都不会返回大型结果集 有人知道 HSQLDB 是否可以处理这么大量的行吗 From HSQLDB 官方页面 http ww
  • 内存层次结构 - 为什么寄存器昂贵?

    我明白那个 Faster访问时间 gt More昂贵的 Slower访问时间 gt Less昂贵的 我还了解到寄存器是层次结构的顶部 并且具有最快的访问时间 我很难研究的是why这么贵吗 据我所知 寄存器实际上是直接内置于 ALU 中的电路
  • 给定年份和月份的月份函数的最后一天

    多次单步执行代码后 我无法找到具体导致此错误的原因 我希望有人以前见过这个错误 这就是我的think与问题相关 Load packages library lubridate MONTH lt 1 YEAR lt 2018 Last day
  • 如何使用 ie11 在 Threejs 中加载 gltf 场景

    我使用 Three js 及其 gltfloader js 编写了一个简单的 html 来加载 gltf 模型 它在 Mozilla 上完美运行 但即使没有错误 它也不会显示在 ie11 上 我尝试过使用 es6 promise polly
  • 使用 python lxml xpath 迭代表中的所有行

    这是我想要从中提取数据的html页面的源代码 网页 该表格位于页面底部 table class clCommonGrid cellspacing 0 thead tr td Kommande matcher td tr tr th th t
  • 游戏开发方面 SharpDX 与 SlimDX 比较? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 使用 cypress 从数据库中检索值

    谁能帮我解决以下场景 我必须执行一个select语句并使用 Cypress 将查询结果存储在变量中 下面是我尝试过的代码 我想存储查询结果 select id from invoices where INumber invoiceNumbe
  • 如何在 OpenGL 中可视化深度纹理?

    我正在研究阴影贴图算法 我想调试它在第一次传递时生成的深度图 但是 深度纹理似乎无法正确渲染到视口 有没有简单的方法可以将深度纹理显示为灰度图像 最好不使用着色器 您可能需要更改深度纹理参数以将其显示为灰度级别 glTexParameter
  • 使用 scipy.optimize 动态选择要最小化 python 中函数的参数

    我有一个函数 它接受变量列表作为参数 我想使用 scipy optimize minimize 最小化这个函数 问题在于 它是在运行时决定应该对参数列表中的哪个变量进行最小化的 所有其他变量将获得固定值 让我们举个例子来说明一下 a 1 c
  • require 的行为(静态 + 动态)[ RAKU ]

    我的问题与以下行为有关require当与所需命名空间的静态或动态解析一起使用时 我将尝试表达我对事物的理解 1 将 require 与文字一起使用 require MODULE 在这种情况下 编译器会检查 MODULE 是否已被声明为符号
  • 在运行时保存并重新加载 app.config(applicationSettings)

    我已将应用程序的配置存储在 app config 中 通过 Visual Studio 我在项目属性对话框的设置选项卡上创建了一些应用程序密钥 然后我在应用程序级别 而不是用户级别 设置了该密钥 Visual Studio 自动生成以下 x
  • 在操作方法中填充模型后对话框未更新

    我正在使用 primefaces 对话框 我有一个项目列表 每当我选择一个项目时 我希望对话框显示该项目名称 然而 这并没有发生 该对话框根本不显示任何名称 而不是显示项目名称 我在下面发布了我的代码
  • NSubstitute ILogger .NET Core

    我正在尝试围绕异常处理编写单元测试 以便可以验证我的记录器是否正确记录了异常 我使用 NSubstitute 作为模拟框架Microsoft Extensions Logging ILogger我必须遵循我的测试 Fact public v
  • 链接:警告 LNK4098:defaultlib 'MSVCRT' 与其他库的使用冲突;使用 /NODEFAULTLIB:库

    当我尝试构建与 libeay32 lib 链接的源代码时 我已经从 OpenSSL 源本地构建了这个 我遇到了上述警告 LINK 警告 LNK4098 defaultlib MSVCRT 与其他库的使用冲突 使用 NODEFAULTLIB
  • GIT-SVN克隆命令执行没有错误,但本地master分支丢失

    我正在尝试使用 GIT SVN 但在启动时遇到问题 我可以克隆 svn 存储库 或使用 git svn init 然后使用 git svn fetch 不会出现任何错误 但在命令停止处理后 git 存储库为空 并且没有本地主分支 我的 sv
  • 某些客户端的 HTTP 标头的字符被随机替换

    正在进行网络流量和日志分析 但有很多从客户端传递的格式错误的标头 这些字符被转调或替换为 x 有谁知道它们来自哪里或为什么 这是某种安全尝试 还是更邪恶的行为 例子 xroxy connection Keep Alive cneoction
  • 有人在 Solaris 10x86 上安装了 Rails 3

    我想要一种在未连接到互联网的 Solaris 10 x86 服务器上安装 Rails 3 的简单方法 我可以下载文件并刻录到 DVD 或记忆棒并以这种方式安装 有些软件包是最好的 因为并不真正期待从源代码编译 有没有人做过这个或看过任何有关
  • 实体框架代码优先迁移和 Firebird

    我正在尝试在 Firebird 2 5 数据库上启用迁移 我正在使用 VS2015 ADO 驱动程序和实体提供程序已安装并正常工作 我对数据库进行了逆向工程 进行了必要的更改以使其正常工作 我可以在包管理器控制台上执行启用迁移 并添加迁移
  • 将 vCard 数据直接添加到系统地址簿

    我正在设计一个QR码阅读器 它需要检测并导入vCard格式 vcf 的联系人卡片 有没有办法直接将名片数据添加到系统地址簿中 或者我需要自己解析vCard并单独添加每个字段 如果您在 iOS 5 或更高版本上运行 以下代码应该可以解决问题