Похожие: Есть ли способ создать абстрактный класс в Objective C?
Objective-C фактически не имеет способа объявить класс абстрактным. От Документы Apple :
Абстрактные классы
Некоторые классы предназначены только для
прежде всего, чтобы другие классы могли
наследовать от них. Эти абстрактные
классы групповые методы и экземпляры
переменные, которые могут быть использованы числом
различных подклассов в общий
определение. Абстрактный класс
как правило, неполный сам по себе, но
содержит полезный код, который уменьшает
бремя реализации его
подклассы. (Потому что абстрактные классы
должны иметь подклассы, чтобы быть полезными,
их иногда также называют абстрактными
суперкласс.)
В отличие от некоторых других языков,
Objective-C не имеет синтаксиса для
помечать классы как абстрактные
помешать вам создать экземпляр
абстрактного класса.
Класс NSObject является каноническим
Пример абстрактного класса в Какао.
Вы никогда не используете экземпляры
Класс NSObject в приложении - это
не было бы хорошо ни для чего; Это
будет общий объект с
способность ничего не делать в частности.
Класс NSView, с другой стороны,
предоставляет пример абстрактного
экземпляры классов, которые вы могли бы
иногда использовать напрямую.
Абстрактные классы часто содержат код
это помогает определить структуру
приложение. Когда вы создаете
подклассы этих классов, экземпляры
из ваших новых классов подходят без особых усилий
в структуру приложения и
автоматически работать с другими объектами.
Итак, чтобы ответить на ваш вопрос, да, вам нужно поместить сигнатуру метода в заголовок и реализовать метод в базовом классе таким образом, чтобы он вызывал ошибку при вызове, как состояния ответа соответствующего вопроса.
Вы также можете использовать протокол , чтобы заставить классы реализовывать определенные методы.
Однако вы решите реализовать базовый класс, четко задокументируйте в заголовке, а также в своей документации, что именно предполагает этот класс и как его правильно подклассифицировать.