从Swift类中传递Objective-C类的类方法(+)中的参数

时间:2015-08-14 07:23:21

标签: ios objective-c iphone swift arguments

我正在使用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)'

在上面的代码中,我将tmpDictUser作为一个在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

1 个答案:

答案 0 :(得分:2)

第二个参数的类型为Class,它与Swift中的AnyClass桥接。

您需要传递User.self。不是User.self()(与User()相同),而不是User().self(没有意义)。