Как именно вы имеете в виду, заставить их переопределить это? Если вы просто реализуете родительский метод следующим образом:
- (void)performAction {
NSAssert(NO, @"The method %@ in %@ must be overridden.",
NSStringFromSelector(_cmd), NSStringFromClass([self class]));
}
тогда он выдаст исключение во время выполнения, если дочерний класс не сможет его переопределить. К сожалению, нет способа обеспечить это во время компиляции.