2016-09-15 2 views
0

Я только что обновил свой проект Swift 2 Свифта 3 и у меня проблема с запросом на AddressBook:Swift3: ABSearchElement аварии

import Cocoa 
import AddressBook 

let firstName:String = "John" 
let lastName:String = "Appleseed" 

let addressBook = ABAddressBook.shared() 
let firstNameSearch = ABPerson.searchElement(forProperty: kABFirstNameProperty, 
             label: nil, 
             key: nil, 
             value: firstName, 
             comparison: ABSearchComparison(kABEqualCaseInsensitive.rawValue)) 
let lastNameSearch = ABPerson.searchElement(forProperty: kABLastNameProperty, 
             label: nil, 
             key: nil, 
             value: lastName, 
             comparison: ABSearchComparison(kABEqualCaseInsensitive.rawValue)) 


let comparisons = [firstNameSearch, lastNameSearch] 
let andComparison = ABSearchElement(forConjunction: CFIndex(kABSearchAnd.rawValue), children: comparisons) 
let peopleFound = addressBook?.records(matching: andComparison) as! [ABRecord] 
if peopleFound.count > 0 
{ 
    let contact = peopleFound[0] 
} 

Это сбой с этой ошибкой

2016- 09-15 12: 59: 02.657 com.apple.dt.Xcode.PlaygroundStub-macosx [37940: 8204350] - [_ SwiftValue searchRecordClasses]: непризнанный селектор, отправленный в экземпляр 0x7fc098ec9600 2016-09-15 12: 59: 02.658 com.apple .dt.Xcode.PlaygroundStub-macosx [37940: 8204350] Неподготовленное исключение было поднято 2016-09-15 12: 59: 02.658 com.apple.dt.Xcode.PlaygroundSt UB-MacOSX [37940: 8204350] - [_ SwiftValue searchRecordClasses]: непризнанные селектор направлен например 0x7fc098ec9600

при выполнении этой строки:

let andComparison = ABSearchElement(forConjunction: CFIndex(kABSearchAnd.rawValue), children: comparisons) 

Кто-нибудь знает, что обновленный Swift 3 код должен быть?

ответ

1

Это _SwiftValue часто встречается при прохождении некоторого Необязательного до Any.

Попробуйте изменить comparisons так:

let comparisons = [firstNameSearch!, lastNameSearch!] 
+0

Perfect. Это исправило это! – iphaaw