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

今は試すことができませんが、これによれば、ファイルの先頭に追加するだけで、 fromimport Foundationへの暗黙的なキャストを実行できるはずですNSNumberInt

于 2015-05-04T12:20:46.570 に答える