2014-11-02 2 views
0

я начал программировать в быстрой в течение 2 недель, и я до сих пор некоторые Objective C классов я хотел бы использовать в моем приложении , Одним из примеров будет вызывать этот метод из Swift:Как вызвать объективный метод C в Swift, который требует класса выполнения в качестве параметра

+ (void)transitionFromThisVCClass:(Class<SomeProtocol>)aFromVCClass 
         ToThisClassVCClass:(Class<SomeProtocol>)aToVCClass 
        WithNavigationController:(UINavigationController *)aNav 
           WithDuration:(NSTimeInterval)aDuration 

Моя проблема заключается в том, что я не могу найти способ, чтобы пройти в типе класса, как я сделал бы в Objective C [SomeClass класс]. Любая помощь с этим будет высоко оценена. Благодаря

UPDATE

Если я пытаюсь использовать MyClass.self так:

ASFSharedViewTransition.addTransitionWithFromViewControllerClass(
    RecommendationListViewController.self, 
    toViewControllerClass: RecommendationViewController.self, 
    withNavigationController: self.window?.rootViewController, 
    withDuration: 0.3) 

ASFSharedViewTransition является объективным с классом, который я пытаюсь позвонить с быстрой

Я получаю эту ошибку:

Cannot convert the expression's type '(RecommendationListViewController.Type, 
toViewControllerClass: RecommendationViewController.Type, 
withNavigationController: $T5??, 
withDuration: FloatLiteralConvertible)' 
to type 'FloatLiteralConvertible' 
+0

Пожалуйста, включите актуальную часть кода, вызывающего эту проблему (а не только сообщение об ошибке) – DPlusV

+2

Текущая проблема отделена от исходного вопроса. Но похоже, что вам не хватает ролика - например, попробуйте 'self.view.window? .rootViewController как UINavigationController'. – DPlusV

ответ

1

Вы можете использовать foo.self, где foo - это имя класса. Например, MyClass.self

+0

, к сожалению, он не работает: невозможно преобразовать тип выражения '(РекомендацияListViewController.Type, toViewControllerClass: РекомендацияViewController.Type, withNavigationController: $ T5 ??, withDuration: FloatLiteralConvertible)' для ввода 'FloatLiteralConvertible' – alex

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