2015-05-04 1 views
2

Я использую следующий код, чтобы ввести параметр перечисления в Typhoon в Swift:Инъекционного параметр в тайфуне Swift

public dynamic func introPageViewController() -> AnyObject { 
     return TyphoonDefinition.withClass(UIPageViewController.self) { 
     (definition) in 
      definition.useInitializer("initWithTransitionStyle:navigationOrientation:options:"){ 

     (initializer) in 
     initializer.injectParameterWith(UIPageViewControllerTransitionStyle.Scroll) 
     } 

    } 

} 

Проблема заключается в том, что метод injectParameterWith принимает только параметры типа AnyObject и параметр Я хочу, чтобы ввести имеет тип Int, поэтому этот код дает ошибку компилятора. Как я могу достичь этого, не вызывая ошибки компилятора или сбоя?

ответ

2

Как указано в Typhoon User Guide here, чтобы ввести enum, необходимо установить его как NSNumber. Я на самом деле не уверен, как явным образом указывать в Swift, но вы можете сделать это с чем-то вроде:

var num: NSNumber = mode.rawValue 
+1

Спасибо! Он работает сейчас :) – amandeepsingh

0

Я не могу попробовать его сейчас, но в соответствии с this вы должны быть в состоянии просто добавить import Foundation в верхней части файла, и он будет делать неявное приведение к NSNumber из Int

+0

Я не могу этого сделать. он продолжает говорить, что UIPageViewControllerTransitionStyle не конвертируется в NSNumber – amandeepsingh