问题标签 [abmultivalue]
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.
ios - ABMultiValueCopyLabelAtIndex 返回 null,但标签在通讯录中可见
我正在尝试读取通讯簿中特定即时消息服务的标签。在这种情况下,我正在手机上使用 Facebook Messenger 服务进行测试。该联系人已链接联系人,但只有一个记录的即时消息服务。
我试图找到有关如何ABMultiValueCopyLabelAtIndex
工作的信息,但我发现它“可能返回 null”。如果通讯簿中没有可见的标签,那么是的,我明白为什么它会返回 null。但是在这种情况下,有一个标签,它在人员视图中显示为“Facebook Messenger”。我仍然为空,为什么?
ios - “二进制运算符 '<' 不能应用于两个 CFIndex 操作数” - 从 ABMultiValue(通讯簿)中选择电话号码
我正在尝试使用 AddressBook 和 AddressBookUI 来显示地址簿的视图,然后用户可以在其中点击联系人,然后点击电话号码,并且应用程序会收到电话号码。当我遍历 ABMultiValue 以查找具有所选标识符的条目时遇到问题 - 错误“ ”在循环行(第 13 行)Binary operator '<' cannot be applied to two CFIndex operands
上引发。for
我已经粘贴了下面的代码 - 有没有人知道为什么会发生这种情况/我可以做些什么来解决它?谢谢!
ios - Swift:设置 ABRecord 的地址属性
我查看了此处的 SE 问题[Avinash 的回答] 和此处的 Apple 资源[第 18 页底部和第 19 页顶部],试图为ABRecord
. 我尽力将它们从 Objective-C 翻译过来,但显然我在某处犯了错误,因为在线上let dict = CFDictionaryCreate(kCFAllocatorDefault, keys, values, 5, &kCFCopyStringDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks)
我得到了 error Cannot assign to immutable value of type 'CFDictionaryValueCallBacks'
。
这是我的代码:
ios - 排序 ABMultiValueRef(kABPersonPhoneProperty)
好吧,为了获得电话属性ABAddressBook
,我使用了一个循环。
编辑:我试过的代码:
但我不认为这是最好的选择..?
也许是这样的:
当联系人有多个电话号码值时,我可以用ABMultiValueGetCount(phones)
.
好吧,现在举个例子:
ABAddressBook
联系人 « Peter » 在(NSLog
电话)中有 5 个电话号码:
02 35 00 00 00
07 00 00 00 00
+1(919)949-8234
06 00 00 00 00
9009498923
我想对这些数字进行排序,并且只存储一个NSString
:
如果数字以 07 开头 -> 接受。(分配给NSString
)
如果数字以 06 开头 —> 接受。(分配给NSString
)
如果其他号码 -> 不分配。
如果他们是两个电话号码:一个是 06,一个是 07,取最后一个注册ABAddressBook
的号码(或者如果这不可能/太复杂,取 07 开头的号码)。
我想为ABAddressBook
. 并且每个联系人只有一个号码(如果号码不是以 06 或 07 开头,则为 0)。
在我的例子中:
彼得有这个号码:07 00 00 00 00