AppCode 2023.1 ヘルプ

関数の抽出

関数の抽出リファクタリングを使用すると、グループ化できるコードフラグメントを取得し、それを別の関数に移動して、古いコードを関数呼び出しに置き換えることができます。

関数の抽出リファクタリングには次の制限があります。

  • リファクタリングは、自動モードの複数の出力値では機能しません。リファクタリングを適用する前にコードを変更する必要があります。たとえば、すべての出力値を含む特別なデータクラスを導入できます。

  • リファクタリングは、条件付きで包含メソッドから戻ってくるコードフラグメントでは機能せず、最後には配置されません。

Extract function

関数の抽出リファクタリングを元に戻すには、Ctrl+Alt+N を押してインライン化リファクタリングを呼び出します。

関数を抽出する

  1. 関数に抽出するコードフラグメントを選択します。

  2. Ctrl+Alt+M を押すか、メインメニューまたはコンテキストメニューからリファクタリング | 抽出 / 導入 | 機能を選択します。

  3. 開いたダイアログで、可視性、パラメーター名、セレクターパーツ(Objective-C の場合)などの機能オプションを構成します。必要に応じて、メソッドの名前を変更することもできます。

  4. 抽出をクリックします。

コード例

private func setupUI() { // ... // This code will be extracted to a method self.buttonLogin.layer.borderColor = UIColor.black.cgColor self.buttonLogin.layer.borderWidth = 1.0 self.buttonLogin.setTitleColor(UIColor.black, for: .normal) self.buttonLogin.setTitle("Login", for: .normal) }
private func setupUI() { // ... // Extracted method's call setupLoginButton() } // Extracted method private func setupLoginButton() { self.buttonLogin.layer.borderColor = UIColor.black.cgColor self.buttonLogin.layer.borderWidth = 1.0 self.buttonLogin.setTitleColor(UIColor.black, for: .normal) self.buttonLogin.setTitle("Login", for: .normal) }

- (void)setupUI { // ... // This code will be extracted to a method self.buttonLogin.layer.borderColor = [[UIColor blackColor] CGColor]; self.buttonLogin.layer.borderWidth = 1.0; [self.buttonLogin setTitleColor:[UIColor blackColor] forState:UIControlStateNormal]; [self.buttonLogin setTitle:@"Login" forState:UIControlStateNormal]; }
- (void)setupUI { // ... // Extracted method's call [self setupLoginButton]; } // Extracted method - (void)setupLoginButton { self.buttonLogin.layer.borderColor = [[UIColor blackColor] CGColor]; self.buttonLogin.layer.borderWidth = 1.0; [self.buttonLogin setTitleColor:[UIColor blackColor] forState:UIControlStateNormal]; [self.buttonLogin setTitle:@"Login" forState:UIControlStateNormal]; }