2017-08-20 48 views
0

我試圖用賽格瑞與WatchKit背景下,我就遇到了這個問題:任何不能與字典文字使用

語境型「[任何]」不能用字典文字

使用

這裏是我使用的代碼:

override func contextsForSegue(withIdentifier segueIdentifier: String) -> [Any]? { 

    if segueIdentifier == "One" { 
     return ["sceneName" : "One"] 
    } else if segueIdentifier == "Two" { 
     return ["sceneName": "Two"] 
    } else { 
     return ["sceneName": "Three"] 
    } 
} 

在SEGUE目的地有這個代碼,產生任何錯誤:

@IBOutlet var theName: WKInterfaceLabel! 

override func awake(withContext context: Any?) { 
    super.awake(withContext: context) 
    // Configure interface objects here. 
    self.setTitle("") 
    let dict = context as? NSDictionary 
    if dict != nil { 
     let segueContext = dict![["sceneName"]] as! String 
     theName.setText(segueContext) 
    } 
} 


希望有人能幫助!

回答

0

返回類型需要是一個對象數組,而您試圖返回單個字典文本。

您嘗試重寫的函數用於將上下文發送到基於頁面的接口控制器的數組。你確定,那是你想要做的?從你的代碼看來,你應該重寫函數contextForSegue(withIdentifier segueIdentifier: String) -> Any?

override func contextForSegue(withIdentifier segueIdentifier: String) -> Any? { 

    if segueIdentifier == "One" { 
     return ["sceneName" : "One"] 
    } else if segueIdentifier == "Two" { 
     return ["sceneName": "Two"] 
    } else { 
     return ["sceneName": "Three"] 
    } 
}