问题标签 [cncontactstore]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
618 浏览

ios - Swift - ContactStore 错误无法连接到服务 com.apple.contactsd

我正在尝试将手机中的联系人从 Exchange Container 移动到 iCloud Container - 但我遇到了一个奇怪的错误,无法找到任何解决方案..你们中有人遇到过这个问题吗?

2018-10-01 20:18:27.501591+0300 ContactManager[9630:1988935] [Contacts] 与 XPC 服务通信时出错:错误域 = NSCocoaErrorDomain 代码 = 4097 “连接到名为 com.apple.contactsd 的服务” UserInfo = {NSDebugDescription =连接到名为 com.apple.contactsd} 的服务 2018-10-01 20:18:27.502257+0300 ContactManager[9630:1988988] [Contacts] 错误:与 com.apple.contactsd 的服务连接被中断 保存联系人时出错 错误域 = CNErrorDomain Code=1 "通信错误" UserInfo={NSLocalizedDescription=通信错误,NSLocalizedFailureReason=尝试与联系人服务通信时出错。}

下面的代码片段:

0 投票
1 回答
397 浏览

ios - 联系人访问权限显示在模拟器中,但不显示在真实设备上,有时很快

我有一个请求访问联系人的简单代码

此代码在模拟器上运行良好。当我在模拟器上删除应用程序并清理然后再次构建并运行应用程序时,它工作正常,弹出视图会出现权限请求,但是在真实设备上,当我从手机中删除应用程序并清理时,权限会在第一次弹出构建并运行我没有再次收到弹出权限请求

0 投票
1 回答
229 浏览

ios - CNContactStore executeSaveRequest 失败,CNErrorDomain Code=101 No Accessible Writable Containers

我添加了一个代码,其中用户单击一个按钮并保存联系人,但现在我的代码不起作用,并且在执行 saveRequest 对象时失败。

联系人应保存为“错误域=CNErrorDomain Code=101“无可访问可写容器”UserInfo={NSLocalizedDescription=无可访问可写容器,NSLocalizedFailureReason=此应用程序无权访问任何可写联系人容器。}”

0 投票
1 回答
403 浏览

ios - CNContact 添加新的联系人问题

我在通过Contact Framework添加联系人时遇到问题。

我使用 iOS 12.1.2 设备 iPhone 5s

我添加联系人的代码如下::

每次都会出现如下错误::

保存请求时出错 Error Domain=CNErrorDomain Code=1 "Communication Error" UserInfo={NSLocalizedDescription=Communication Error, NSLocalizedFailureReason=尝试与联系人服务通信时出错。}

现在给任何人关于这个错误的任何信息吗?

我无法找到任何关于此的事情。

0 投票
0 回答
223 浏览

ios - 有没有办法更快地获取更新的联系人?

我正在寻找一种方法来获取添加/删除/修改的联系人以将它们发送到服务器..

我使用 Realm 是因为它比 coreData 更快地保存联系人和每次刷新或用户重新进入应用程序时.. 我正在将 Realm 数据库(备份)与 sim 联系人进行比较,以检测是否有变化(插入 -修改 - 删除)..

代码运行良好,但速度不够快..

我尝试在目标 C 文件中使用 ABAddressBookRegisterExternalChangeCallback ,但它并不方便,因为只有在应用程序处于后台时更改用户时才会调用它,并且它没有给我任何有用的东西......

我也尝试了 CnContactStoredidchange 通知,但它没用。

这是数据库RealmModel,我使用全名+电话号码作为主键来快速从数据库中获取它

2)这是我调用该方法的地方

3)这里是函数的实现

因为 Realm 在插入和获取方面更快,所以我没有发现它和 coreData 之间有很大的区别,我正在用一个有 6000 个联系人的手机测试它们。核心数据需要 90 秒才能完成,而 Realm 需要 70 秒

0 投票
1 回答
281 浏览

swift - Swift 以编程方式添加本地联系人容器

有什么方法可以快速添加联系人容器吗?我查看了 CNContainer,但似乎找不到方法。如果没有办法做到这一点,有谁知道如何手动将本地容器添加到设备?

0 投票
2 回答
82 浏览

ios - 如何在iOS上获取联系人并存储在数组中?

我正在为 iOS 联系人开发 Tinder 刷卡应用程序。我已经导入了联系人库并成功地让联系人在控制台中打印。但是,我正在尝试将这些名称动态添加到 Tinder 等卡片中。我创建了一个模型类来保存名称,但是,我无法将我的数据附加到该模型。

我希望我的所有联系人都附加到模型变量,然后将其返回到卡片中。

0 投票
2 回答
2879 浏览

ios - 来自 CNContactStore requestAccess 的错误“承诺未正确完成”

我正在构建一个 UI 来请求访问 CNContactStore 并处理用户以前(并且可能错误地)拒绝访问的情况。当我检测到当前状态为 .denied 时,我会显示一个 UIAlertController,它解释并提供将它们带到应用程序设置以允许访问。

在当前状态为 .denied 时调用 store.requestAccess() 时,应用程序崩溃并显示两个错误:1) “A Promise was finished with a nil error”。和 2) “承诺未正确完成。”。调用堆栈如下所示。

我不擅长解释调用堆栈,但我认为错误来自 CNContactStore 内部。我不清楚我能做些什么来防止这个错误。

编辑:我根本没有在我的应用程序中使用承诺链。

EDIT2:上面澄清了我的代码中发生错误的确切位置。

这些是产生的调用堆栈:

0 投票
3 回答
4591 浏览

ios - IOS 13 CNContacts 不再工作以检索所有联系人

我有一个应用程序在一直到 IOS 12 的 CNContacts 框架中运行得非常好。我目前正在使用 IOS 13 beta 对其进行测试,但它完全被破坏了。我检查了联系人权限并删除了应用程序并重新允许了权限。这是我用来检索所有联系人的代码:

联系人存储构建良好,错误为零。但是,当我尝试通过获取请求获取联系人时,我得到了success=NO并且收到以下错误:

我尝试了各种调整,但我根本无法让它工作。我也找不到任何文件说这种行为已经改变。

有没有其他人也尝试过这个或找到解决方法?

0 投票
0 回答
104 浏览

ios - 为什么我无法从 Apple iOS Contacts Framework 的默认容器中检索组?

我有一个 iOS 应用程序可以访问联系人存储的默认容器并检索该容器中的组。在我退出安装了该应用程序的 iPhone 8 设备后,然后使用另一个帐户登录。然后注销并使用我的原始帐户登录,该应用程序不再能够从默认容器中检索组。

为什么要这样做,我该如何解决?

以下是相关代码:

这是调试窗口输出:

我在任何类之外的 swift 文件中全局初始化了联系人存储:

这个请求用户访问联系人的代码在 viewDidLoad() 回调方法中。initUTIGroups() 方法是我尝试从默认容器中检索组的地方。

我检索了联系人存储中的所有容器,并将它们与默认容器进行了比较。看起来当前的默认容器与我第一次退出 iCloud 之前的默认容器不是同一个容器。我找到了包含组的容器,这些组与我在第一次退出 iCloud 之前从默认容器中检索到的组相同。

是否有我可以编写的代码来防止问题或在问题发生后解决问题?