Вы не можете делать методы закрытыми в Objective-C. Вы можете поднять NSException , если вызывается неправильный инициализатор.
- (id)init
{
[NSException exceptionWithName:@"InvalidOperation" reason:@"Cannot invoke init." userInfo:nil];
}
Удаление -d
из Шебанга решает эту проблему. Слава Кориону за ответ.