Привет, MarqueIV для проверки дополнительной функции, которую вы можете использовать встроенной функцией
func отвечает (aSelector: Selector!) -> Bool
Возвращает логическое значение, которое указываетреализует ли получатель или наследует метод, который может ответить на указанное сообщение.
Приложение отвечает за определение того, следует ли считать ложный ответ ошибкой.
Вы не можете проверить, является ли объектнаследует метод от своего суперкласса, отправляя ответы (to :) объекту, используя ключевое слово super.
Этот метод все равно будет проверять объект в целом, а не только реализацию суперкласса.
Следовательно, отправка ответов (to :) на super равносильна отправке его себе.
Вместо этого вы должны вызывать метод класса NSObject instancesRespond (to :) непосредственно в суперклассе объекта, как показано в следующем фрагменте кода.
Листинг 1
if( [MySuperclass instancesRespondToSelector:@selector(aMethod)] ) {
// invoke the inherited method
[super aMethod];
}
Вы не можете просто использовать [[self superclass] instancesRespondToSelector: @selector (aMethod)], так как это может привести к сбою метода, если он вызывается подклассом.
Обратите внимание, что если получатель может пересылать aSelectorсообщения другому объекту, он сможет ответить на сообщение, хотя и косвенно, даже если этот метод возвращает false.Параметры
aSelector
Селектор, который идентифицирует сообщение.Возвращает true, если получатель реализует или наследует метод, который может ответить на aSelector, в противном случае - false.SDK iOS 2.0+, macOS 10.0+, tvOS 9.0+, watchOS 2.0 +