- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我看了一下SE问题here [Avinash 的回答] 和 Apple 资源 here [第 18 页底部和第 19 页顶部] 我试图为 ABRecord
设置地址。我尽力从 Objective-C 翻译它们,但显然我在某处犯了一个错误,因为在行 let dict = CFDictionaryCreate(kCFAllocatorDefault, keys, values, 5, &kCFCopyStringDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks)
我得到了错误 无法分配给“CFDictionaryValueCallBacks”类型的不可变值
。
这是我的代码:
let information: ABRecord = ABPersonCreate().takeRetainedValue()
let address: ABMutableMultiValueRef = ABMultiValueCreateMutable(ABPropertyType(kABMultiDictionaryPropertyType)).takeUnretainedValue()
var keys = [CFStringRef]()
var values = [CFStringRef]()
keys.append(kABPersonAddressStreetKey)
keys.append(kABPersonAddressCityKey)
keys.append(kABPersonAddressStateKey)
keys.append(kABPersonAddressZIPKey)
keys.append(kABPersonAddressCountryKey)
keys.append(kABPersonAddressCountryCodeKey)
Note: country code left out
values.append(s["kABPersonAddressStreetKey"]!! as NSString)
values.append(s["kABPersonAddressCityKey"]!! as NSString)
values.append(s["kABPersonAddressStateKey"]!! as NSString)
values.append(s["kABPersonAddressZIPKey"]!! as NSString)
values.append(s["kABPersonAddressCountryKey"]!! as NSString)
values.append(s["kABPersonAddressCountryCodeKey"]!! as NSString)
let dict = CFDictionaryCreate(kCFAllocatorDefault, keys, values, 5, &kCFCopyStringDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks)
let scanned = ABUnknownPersonViewController()
let identifier = ABMultiValueIdentifier()
ABMultiValueAddValueAndLabel(address, dict, kABHomeLabel, &identifier)
ABRecordSetValue(information, kABPersonAddressProperty, address, nil)
最佳答案
我确信有更简洁的方法可以做到这一点,但这是我想出的解决方案。
var addressComponents = [String : String]()
if let value = s["kABPersonAddressStreetKey"] {
addressComponents[kABPersonAddressStreetKey as String] = value
}
if let value = s["kABPersonAddressCityKey"] {
addressComponents[kABPersonAddressCityKey as String] = value
}
if let value = s["kABPersonAddressStateKey"] {
addressComponents[kABPersonAddressStateKey as String] = value
}
if let value = s["kABPersonAddressZIPKey"] {
addressComponents[kABPersonAddressZIPKey as String] = value
}
if let value = s["kABPersonAddressCountryKey"] {
addressComponents[kABPersonAddressCountryKey as String] = value
}
if let value = s["kABPersonAddressCountryCodeKey"] {
addressComponents[kABPersonAddressCountryCodeKey as String] = value
}
let address: ABMutableMultiValue = ABMultiValueCreateMutable(ABPropertyType(kABMultiStringPropertyType)).takeRetainedValue()
ABMultiValueAddValueAndLabel(address, addressComponents, kABHomeLabel, nil)
ABRecordSetValue(information, kABPersonAddressProperty, address, nil)
关于ios - Swift:设置 ABRecord 的地址属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31932726/
我需要从应用程序中引用 ABPerson 记录。我用unique ID提供者: - (NSString *)uniqueId 并将其附加到我的应用内联系人记录中。 另外,我保存ABPerson's
我是 iPhone 开发新手,您能告诉我如何序列化 AdressBook 记录吗? 我已阅读stackoverflow - How do I serialize a simple object in
我想将 ABRecord 转换为字符串 textfield.text=(NSString *)(ABRecordGetRecordID(ref)); 我该怎么做。 最佳答案 ABRecordID 只是
我看了一下SE问题here [Avinash 的回答] 和 Apple 资源 here [第 18 页底部和第 19 页顶部] 我试图为 ABRecord 设置地址。我尽力从 Objective-C
我正在尝试通过我的应用程序更新地址簿中现有联系人的内容,但不需要 UI。场景是这样的: 1 用户输入号码和姓名2 应用程序检查该姓名是否在联系人列表中3 如果是,则检查该号码是否是该姓名的联系人之一4
我有这个代码: - (BOOL)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker
我正在尝试通过我的应用程序更新地址簿中现有联系人的内容,但不需要 UI。场景是这样的: 1 用户输入一个数字和一个名字2 应用程序检查该名称是否在联系人列表中3 如果是,则检查该号码是否是该名称的联系
我想让我的应用程序的用户能够从他们的地址簿中获取他们的联系人。我可以展示 ABPeoplePickerNavigationController,用户可以选择一个人,然后 ABPPNC 再次关闭。 这就
我是一名优秀的程序员,十分优秀!