Нет встроенной поддержки для создания абстрактных классов, но вы можете сделать это, переопределив метод allocWithZone:
.
+ (id)allocWithZone:(NSZone *)zone {
if([self class] == [MyAbstractClass class]) { // Check if it is a subclass or not
NSLog(@"MyAbstractClass is an abstract superclass and should not be allocated directly. Use a concrete subclass instead.");
return nil;
}
return [super allocWithZone:zone];
}