xcode - “AnyObject”不可转换为 ABRecordRef

标签 xcode macos swift

我正在尝试使用 swift 从地址簿中获取人们的生日。

    let ab = ABAddressBook.sharedAddressBook()
    var birthday: CFDateRef?       
    for person in ab.people() {
        birthday = ABRecordCopyValue(person, kABBirthdayProperty)
    ...

但我在 xcode 中收到以下错误:

AnyObject' is not convertible to ABRecordRef

ABRecordCopyValue 需要一个 ABRecordRef 对象作为第一个参数,但 person 是 AnyObject 类型。 它也不适用于 person as ABRecordRef

最佳答案

ABRecordRef 与 Swift 中的 ABRecord 相同。您应该能够使用 ABRecord 类中更简单的 API:

for person in ab.people() as [ABPerson] {
    person.valueForProperty(kABBirthdayProperty)...
}

关于xcode - “AnyObject”不可转换为 ABRecordRef,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24798613/

相关文章:

ios - xcode 6 无法处理应用程序。 bundle '*' 未使用苹果提交证书签名

xcode - 将多个字符串添加到一个字符串

c++ - c/c++ Linux 相当于 "bool DllMain()"- 但我需要将失败返回给 dlopen()

objective-c - Xcode 5 : Code signing entitlement errors

ios - 将 prepareForSegue 用于 TableView Controller

macos - 如何从 Swift 中的 NSSavePanel 对象中获取路径

iphone - 在游戏中调用 addObject 时出现 IOS 8 XCode 6 beta 4 异常

C++ "Reference to overloaded function"错误使用命名空间标准

objective-c - OSX : Monitoring launchd, 守护进程和代理

swift - 如何增加 String.CharacterView.Index 类型的变量?