В то время как вы можете использовать isKindOfClass:
для выполнения именно той проверки, которую вы описываете, вы уверены, что это то, что вам нужно?Пакет может объявить любой класс в качестве своего основного класса, и если этот класс предоставляет те же методы, что и базовый класс вашего плагина, то он может использоваться как таковой (это Duck Typing * Objective-C * 1007)*).Поэтому вы могли бы проверять, а не подклассы, на существование методов API плагина.
Похоже, вы пропустили использование основного класса.Смотря на документацию , пакет может объявить в своем файле Info.plist
класс, который представляет точку входа в функциональность этого пакета.Вместо того, чтобы искать в каждом классе что-то, совместимое с вашим API, вы можете просто потребовать, чтобы авторы плагинов зарегистрировали совместимый основной класс.Этот подход позволяет авторам плагинов объявлять несколько соответствующих классов для использования таких шаблонов, как Strategy, State или Decorator, в то же время предоставляя одну точку входа.Ваш подход, описанный в вашем вопросе, будет пытаться использовать все эти экземпляры одновременно.