2016-09-15 11 views
0

私はちょうどスウィフト3に私のスウィフト2プロジェクトを更新していると私はアドレス帳のクエリに問題を抱えている: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.Xt.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) 

が更新スウィフト3のコードがどうあるべきか、誰を知っていますか?

答えて

1

_SwiftValueは、一部のオプションをAnyに渡すとよく見受けられます。

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

パーフェクト:

は、このようなあなたのcomparisonsを変更してみてください。それはそれを修正! – iphaaw