AppCode 2023.1 ヘルプ

変換

変換リファクタリングを使用すると、メソッドを関数またはブロックに、またはその逆に変換したり、プロパティをインスタンス変数に変換したりできます。

これらのリファクタリングは、リファクタリングメニューから呼び出されます。同じ目的でシグネチャーの変更リファクタリングを使用することもできます。

メソッドに変換

メソッドに変換リファクタリングを使用すると、関数またはブロックをメソッドに変換できます。

  1. エディターで、メソッドに変換する関数またはブロックにキャレットを配置します。

  2. メインまたはコンテキストメニューからリファクタリング | メソッドに変換を選択します。

  3. 開いたダイアログで、必要に応じて変更を加えます。

    Convert Module Groups to method
  4. リファクタリングを実行するには、リファクタリングをクリックします。リファクタリングを実行する前に予想される変更を確認し、必要な調整を行うには、プレビューをクリックします。

// This function will be converted into a method BOOL isPasswordValid(NSString *password) { return password.length > 4; } - (void)performLogin { // ... // Function's usage if (isPasswordValid(password) == NO) { // ... } }
// New method + (BOOL)isPasswordValid:(NSString *)password { return password.length > 4; } - (void)performLogin { // ... // Method's usage if ([LoginViewController isPasswordValid:password] == NO) { // ... } }

関数に変換

関数に変換リファクタリングにより、メソッドまたはブロックを関数に変換できます。

  1. エディターで、関数に変換するメソッドまたはブロックにキャレットを配置します。

  2. メインまたはコンテキストメニューからリファクタリング | 関数に変換を選択します。

  3. 開いたダイアログで、必要に応じて変更を加えます。

    Convert to function
  4. リファクタリングを実行するには、リファクタリングをクリックします。リファクタリングを実行する前に、予想される変更を確認し、必要な調整を行うには、プレビューをクリックします。

// This method will be converted into a function - (void)setIsValid:(BOOL)isValid forField:(UITextField *)field { field.textColor = isValid ? [UIColor blackColor] : [UIColor redColor]; } - (void)performLogin { // ... if (isEmailValid == NO) { // Method's call [self setIsValid:NO forField:self.textFieldEmail]; } }
// New function void setIsValid(BOOL isValid, UITextField *field) { field.textColor = isValid ? [UIColor blackColor] : [UIColor redColor]; } - (void)performLogin { // ... if (isEmailValid == NO) { // Functions's call setIsValid(NO, self.textFieldPassword); } }

ブロックに変換

ブロックに変換リファクタリングを使用すると、関数またはメソッドをブロックに変換できます。

  1. エディターで、ブロックに変換するメソッドまたは関数にキャレットを置きます。

  2. メインまたはコンテキストメニューからリファクタリング | ブロックに変換を選択します。

  3. 開いたダイアログで、必要に応じて変更を加えます。

    Convert to Block
  4. リファクタリングを実行するには、リファクタリングをクリックします。リファクタリングを実行する前に、予想される変更を確認し、必要な調整を行うには、プレビューをクリックします。

// This function will be converted into a block BOOL isPasswordValid(NSString *password) { return password.length > 4; } - (void)performLogin { // ... // Function's call if (isPasswordValid(password) == NO) { // ... } }
- (void)performLogin { // ... // New block if (^BOOL(NSString *password) { return password.length > 4; }(password) == NO) // ... }

プロパティに変換

プロパティに変換リファクタリングにより、インスタンス変数をプロパティに変換できます。

  1. プロパティに変換するインスタンス変数にキャレットを置きます。

  2. メインまたはコンテキストメニューからリファクタリング | プロパティに変換を選択します。

  3. 開いたダイアログで、変換するインスタンス変数を選択します。

    Convert instance variable to property
  4. リファクタリングを実行するには、OK をクリックします。

@interface AlertParams : NSObject { // These instance variables // will be converted to properties @public NSString *_title; NSString *_message; } @end
@interface AlertParams : NSObject // New properties @property (nonatomic, strong) NSString *title; @property (nonatomic, strong) NSString *message; @end

インスタンス変数に変換

インスタンス変数に変換リファクタリングでは、プロパティをインスタンス変数に変換できます。

  1. エディターウィンドウ内にキャレットを配置します。

  2. メインまたはコンテキストメニューからリファクタリング | インスタンス変数に変換を選択します。

  3. 開いたダイアログで、変換するプロパティを選択します。

    Convert properties to instance variables
  4. リファクタリングを実行するには、OK をクリックします。

@interface AlertParams : NSObject // These properties will be converted // to instance variables @property (nonatomic, strong) NSString *title; @property (nonatomic, strong) NSString *message; @end
@interface AlertParams : NSObject { // New instance variables @public NSString *_title; NSString *_message; } @end