2017-03-03 153 views
0

我試圖從WKInterfaceController訪問對象屬性,但是我對Swift的認識不足已經開始大放異彩。Swift - 訪問對象屬性 - 如何

可以說我做了一個API調用,並通過pushController()將響應傳遞給控制器​​。下面是我的一些代碼片段:

override func awake(withContext context: Any?) { 
     super.awake(withContext: context) 
     // I know context is an object, how to access its elements 
} 

的數據context類似於{"user":"me","pw":"wouldntyouliketoknow","host":"google.com"}。有人請讓我知道我可以只訪問context.host?加班我試圖訪問對象的屬性,我得到編譯器說錯誤的東西host is an unknown property

此外,上下文不能被鑄造爲真正鍵入NSObject或AnyObject。

回答

0

迅速編譯器認爲這方面是一個類型的對象任意的,由於這個原因,你無法訪問對象的屬性直接 - 嘗試投類型的任何對象,以你的對象類型,如:

if let movie = context as? Movie { 
     print("Movie: \(movie.name), dir. \(movie.director)") 
} 

或你可以試試UNSAFE和我的NONRECOMENDED選項:

context.value(forKey: "name") 
+0

就你而言,我需要定義類'Movie'。我試圖避免這種類型的工作....在JS中,我只會做一些像'if(context.host)... dowork' – LostJon

+0

對不起,我的意思是context.value(forKey:「名稱」) - 這應該工作 –

+0

我今晚給了它一個鏡頭,我昨天試過這個,但得到編譯器錯誤垃圾郵件。至少知道這是訪問對象屬性的方式是戰鬥的一半。如果這是我的決心,不要將你的答案標記爲正確 – LostJon