2017-03-03 125 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