2015-05-25 37 views
0

我试图从Mac地址簿中获取联系人详细信息。我可以得到名字和姓氏字段等,但我正在努力ABPersonCopyImageData的语法。使用ABPersonCopyImageData获取联系人图像数据

现在根据文档ABPersonCopyImageData采用ABPerson类型的单个参数。

这里是我的代码:

import AddressBook 
let thisPerson : ABPerson 
let addressBook = ABAddressBook.sharedAddressBook() 
rec = addressBook.recordForUniqueId("0005A360-327F-4E12-BBB9-24A842497E12:ABPerson") 
let firstName = rec.valueForProperty(kABFirstNameProperty) as! String 
let lastName = rec.valueForProperty(kABLastNameProperty) as! String 
println("\(firstName) \(lastName)") 

let contactImage = ABPersonCopyImageData(thisPerson) 

最后一行停止与错误编译:不能援引“ABPersonCopyImageData”类型的参数列表(ABPerson)。据我可以告诉这个Person是ABPerson类型的。出了什么问题?

回答

0

我发现了如何做到这一点的ElCapitan:

import Contacts 

func getContactImage(name:String) -> NSImage? 
{ 
    let store = CNContactStore() 
    do 
    { 
     let contacts = try store.unifiedContactsMatchingPredicate(CNContact.predicateForContactsMatchingName(name), keysToFetch:[CNContactImageDataKey]) 
     if contacts.count > 0 
     { 
      if let image = contacts[0].imageData 
      { 
       return NSImage.init(data: image) 
      } 
     } 
    } 
    catch 
    { 
    } 

    return nil 
}