2015-08-14 2 views
1

Я работаю с гибридным проектом комбинации классов Obj-C и классов Swift. В какой-то момент я немного запутался.Пропустить аргумент в методе класса (+) класса Objective-C класса Swift

Сценарий, как это, у меня есть один util.h класса вызова Obj-C, которые имеют некоторые методы класса, как сильфон код

+ (id)dict_TO_Object:(NSDictionary *)dbData withObject:(Class)myObj { 
     //Some code 
     return obj; 
} 

Теперь, у меня есть один Swift класса называется LoginVC.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 как класс, который User.h в Obj-C

Пожалуйста, предложите мне решение или модификации ,

Edit: Пробовал сильфонные коды, но получить ту же ошибку

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 

ответ

2

Второй параметр имеет тип Class, который мосты к AnyClass в Swift.

Необходимо пройти User.self. Не User.self() (что то же самое, что и User()), а не User().self (что не имеет смысла).

Смежные вопросы