2015-06-29 89 views
0

我對swift及其類型系統非常陌生。我想創建一個字典,它可以有一個字符串的鍵和一個符合QueryItem協議的項目數組的值。如何創建一種可接受此類型的ResultDictionary

typealias ResultsItems = Array: [QueryItem] //= [Location(), Item()] 
// ^^ getting Consecutive declarations on a line must be separated by ';' 
typealias ResultDictionary = Dictionary<String, ResultsItems> 

我不確定這裏的typealias是否是正確的類型。基本上我想要一本字典,可以是這樣的:

ResultDictionary: 
    - dataItems 
     - Item 
     - Item 
    - dataLocations 
     - Location 
     - Location 

我該如何聲明這樣的回調?

class func query(term: String, completionHandler: (queryResults: Dictionary) ->()) { 

回答

1

的typealias應該是:

// [QueryItem] is shorthand for Array<QueryItem> 
typealias ResultsItems = [QueryItem] 
typealias ResultDictionary = Dictionary<String, ResultsItems> 

作爲改善我會建議使用[String : ResultsItems]代替Dictionary<String, ResultsItems>

然後回調應該是

class func query(term: String, completionHandler: (queryResults: [String : ResultsItems]) ->()) { 

或在這種情況下, :

class func query(term: String, completionHandler: (queryResults: ResultDictionary) ->()) { 
相關問題