我正在使用Obj-C类和Swift类的组合的混合项目。我有点迷惑。
场景是这样的,我有一个Obj-C类调用Util.h,它有一些类方法,如波纹管代码
+ (id)dict_TO_Object:(NSDictionary *)dbData withObject:(Class)myObj {
//Some code
return obj;
}
现在,我有一个名为LoginVC.Swift
的Swift类。在此调用中,我想调用dict_TO_Object
方法,下面是代码
let tmpDict:NSMutableDictionary
someVar = Util.dict_TO_Object(tmpDict as [NSObject : AnyObject], withObject: User.self())
//Above line give me an error
Error : Cannot invoke 'dict_TO_Object' with an argument list of type '([NSObject : AnyObject], withObject: User)'
在上面的代码中,我将tmpDict
和User
作为一个在Obj-c中User.h
的类传递
请建议我解决方案或修改。
修改 试过波纹管代码,但得到同样的错误
someVar = Util.dict_TO_Object(tmpDict as NSDictionary, withObject: User().self)
修改解决方案:
实际上这个方法给我一个User.h
类的对象,但我的变量不明白。见下文解决方案
someVar = Util.dict_TO_Object(responseDict as [NSObject : AnyObject], withObject: User.self) as! User
答案 0 :(得分:2)
第二个参数的类型为Class
,它与Swift中的AnyClass
桥接。
您需要传递User.self
。不是User.self()
(与User()
相同),而不是User().self
(没有意义)。