2015-05-25 5 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). Насколько я могу судить, этот человек имеет тип 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 
}