0

特に、チェックして制御するこのクラスの多くのメソッドに異なる実装を追加する「チュートリアル状態」を追加したため、アプリのviewControllerの1つがかなり大きくなっている状況にあります

_tutorialEnabled?

したがって、私の質問は、これがメソッドのスウィズリングの適切な使用例であるかどうかです。これらのメソッドのさまざまな実装を別のカテゴリに入れ、必要に応じてスウィズルすることができます。デフォルトの実装のコード量を減らすのに役立つかもしれません。他のテクニックのコメントや提案は大歓迎です。

4

3 に答える 3

1

サブクラス化しませんか?必要なすべてのロジックを使用して、View Controller のチュートリアル サブクラスを作成します。-viewDidAppear:アニメーションなしの全画面モーダルを使用して、Real View Controller でチュートリアルを表示します。チュートリアルが終わったら、アニメーションなしでモデルを閉じます。

if _tutorialEnabled != nil && _tutorialEnabled {
    tutorialViewController = …
    tutorialViewController.modalPresentationStyle = .FullScreen
    presentViewController(tutorialViewController, animated: NO) {}
}
于 2015-06-12T10:03:27.110 に答える
1

いいえ、これはメソッド スウィズリングが設計された目的ではありません。

個人的には、チュートリアル関連のものを管理する View Controller のサブクラスを作成します。次に、チュートリアルが有効かどうかに応じて、チュートリアル コントローラーまたはそのスーパークラスをインスタンス化します。これが、ポリモーフィズムが設計された目的です: エンドレスなif/ else/ switches を回避するためです。

于 2015-06-12T09:55:40.453 に答える