我在viewcontroller中有一个元变量XML::LibXML
,我打算能够从父视图控制器接收推送它的任何类型的对象。我还有一个类型变量,它将决定我如何在视图控制器中进行类型转换并解释这个NSObject
。
问题是当我尝试在父级中NSObject
转换NSDictionary
时,Xcode警告说这种类型转换总是会失败。
我尝试过的代码:
NSObject
但相反的类型转换始终有效:
childVc.meta = ["title":"test"] as! NSObject; // warning: cast from '[String:String?]' to unrelated type 'NSObject' always fails.
let data = ["title":"test"];
childVc.meta = data as! NSObject; // warning: cast from '[String:String?]' to unrelated type 'NSObject' always fails.
let data = ["title":"test"];
childVc.meta = data as NSObject; // error: cannot convert value of type '[String:String?]' to type 'NSObject' in coercion.
let data = ["title":"test"] as! NSObject; // warning: cast from '[String:String?]' to unrelated type 'NSObject' always fails.
childVc.meta = data;
哦,顺便说一句,我知道swift最后不需要分号。它只是我从obj-c的习惯,而且看起来很快就不关心它,所以不要让这个分号分散我们的注意力。 :)
答案 0 :(得分:1)
你在字典中有一个可选值,似乎不是NSDictionary。
// warning: cast from '[String:String?]'
尝试将其转换为AnyObject
答案 1 :(得分:0)
请尝试使用这样:
var traitsDic : NSDictionary! = ["title":"test"]
var traits = traitsDic as Dictionary<String, AnyObject>