2

我正在使用以下代码在 Swift 中的 Typhoon 中注入枚举参数:

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 类型,所以这段代码给出了编译器错误。如何在不导致任何编译器错误或崩溃的情况下实现这一目标?

4

2 回答 2

2

正如 Typhoon User Guide here中所述,要注入枚举,必须将其装箱为 NSNumber。我实际上不确定如何在 Swift 中显式装箱,但您可以使用以下方法:

var num: NSNumber = mode.rawValue
于 2015-05-04T12:40:27.647 回答
0

我现在无法尝试,但根据这个你应该能够添加import Foundation到文件的顶部,它会对NSNumberfrom进行隐式转换Int

于 2015-05-04T12:20:46.570 回答