AppCode 2020.1 Help

Pull members up and push members down

The Pull Members Up refactoring allows you to move class members to a superclass or protocol.

The Push Members Down refactoring helps clean up the class hierarchy by moving class members to a subclass. The members are then relocated into the direct subclasses only.

  1. Select an item you want to pull up or push down.

  2. From the main or context menu, select Refactor | Pull Members Up or Refactor | Push Members Down.

  3. In the dialog that opens, depending on your refactoring, specify a destination object, members you want to move, and other additional information.

  4. Click Refactor.

Examples

Pull members up

Before

After

// All methods of the Dog class // will moved to a superclass // Dog.h @interface Dog : NSObject - (void)run; - (void)eat; @end // Dog.m @implementation Dog { } -(void)run { NSLog(@"I am running"); } - (void)eat { NSLog(@"I am eating"); } @end
// New superclass // Animal.h @interface Animal : NSObject - (void)run; - (void)eat; @end // Animal.m @implementation Animal { } -(void)run { NSLog(@"I am running"); } - (void)eat { NSLog(@"I am eating"); } @end // The Dog class is now a subclass // of the Animal class // Dog.h @interface Dog : Animal @end // Dog.m @implementation Dog { } @end

Push members down

Before

After

// Animal.h @interface Animal : NSObject - (void)meow; - (void)run; - (void)eat; @end // Animal.m @implementation Animal { } // This method will be moved // to a subclass - (void)meow{ NSLog(@"Meow!"); } - (void)run { NSLog(@"I am running"); } - (void)eat { NSLog(@"I am eating"); } @end
// New subclass // Cat.h @interface Cat : Animal - (void)meow; @end // Cat.m @implementation Cat { } - (void)meow{ NSLog(@"Meow!"); } @end // The Animal class // Animal.h @interface Animal : NSObject - (void)run; - (void)eat; @end // Animal.m @implementation Animal { } - (void)run { NSLog(@"I am running"); } - (void)eat { NSLog(@"I am eating"); } @end
Last modified: 3 June 2020