 <p>I think teamnorge is on the right track His code won't work as posted, though, since the array isn't mutable. </p> <p>Make your property a mutable array. Have the base class create it it init's init method:</p> <p>In your base class header:</p> <pre><code>@property (nonatomic, retain) NSMutableArray *ignoreProperties; </code></pre> <p>Then in the init for your base class:</p> <pre><code>-(instanceType) init; { self = [super init]; if (!self) return nil; self.ignoreProperties = [@[@"property1"] mutableCopy]; } </code></pre> <p>And in the init for your subclass:</p> <pre><code>-(instanceType) init; { self = [super init]; if (!self) return nil; [self.ignoreProperties addObject: @"property2"]; //or to add multiple objects... NSArray *newProperties = @[@"property2", @"property3"]; [self.ignoreProperties addObjectsFromArray: newProperties]; } </code></pre> <p>For efficiency's sake, it might be better to make the array immutable and have the subclass's init method replace it with a an array created using <code>arrayByAddingObject</code> or <code>arrayByAddingObjectsFromArray</code>. (Immutable objects are less costly for the system than their mutable forms. In this case the array of properties will only be created once at initialization of your class, and then persist for it's lifetime.)</p>