Я хочу динамически подклассифицировать класс (скажем, NSString) и создать экземпляр этого подкласса для целей тестирования. Как я могу сделать это в Objective C?Как динамически подклассифицировать класс и создать подкласс в Objective C?
ответ
Я подозреваю, что вам не нужно делать то, что вы хотите сделать, но без особых подробностей невозможно точно знать. Поскольку Objective-C является языком с поздним связыванием, редко требуется подклассификация для целей тестирования. Вместо этого взгляните на class categories или рассмотрите редизайн, чтобы вы могли пройти тестовый двойной (или заглушку, подделку или макет) с помощью параметра типа id
или в соответствии с протоколом.
Для получения дополнительной информации вы можете использовать objc_allocateClassPair(Class superclass, const char *name, size_t extraBytes)
, чтобы выделить новый класс. Вы можете добавлять методы, используя class_addMethod(Class cls, SEL name, IMP imp, const char *types)
и ivars с class_addIvar(Class cls, const char *name, size_t size, uint8_t alignment, const char *types)
. Наконец, вы должны зарегистрировать новый класс, используя objc_registerClassPair(Class cls)
. Узнайте больше в Objective-C 2.0 Runtime Reference. Если я найду время, я проведу код и отправлю его здесь.
- 1. Подкласс класса Objective-C и базовый класс
- 2. Как я должен подклассифицировать инициализацию NSWindow в Objective-C
- 3. Как правильно подклассифицировать свойство делегата в Objective-C?
- 4. Как динамически загружать класс в Objective-C?
- 5. C++: динамически выбирать, какой подкласс создать
- 6. Как создать сущность динамически в Objective-C?
- 7. Как создать класс ConstantList в Objective C
- 8. Как создать класс модели в Objective C++?
- 9. Подкласс/Суперкласс Objective-C
- 10. Как правильно подклассифицировать класс в ObjectiveC?
- 11. XCode 3.2 - невозможно создать класс Objective-C
- 12. Как создать Objective класс C для буфера
- 13. C# Неизменяемый класс подкласс
- 14. Как создать класс класса класса Objective-C?
- 15. Можете ли вы создать подкласс Objective-C++ класса C++
- 16. Как создать подкласс Thread в Ruby?
- 17. Objective C Подкласс Superclass инициализации
- 18. Подкласс и подкласс NSManagedObject
- 19. Как создать объект Swift в Objective-C?
- 20. Как динамически добавлять метод в класс в Objective-C?
- 21. Подкласс Cocos2D MenuItem с Objective-C
- 22. Objective-C Базовый класс настраиваемое свойство Getter Не набираемые Подкласс
- 23. Как создать подкласс, который наследует класс Ellipse
- 24. Objective-C - Подкласс делегата в подклассе
- 25. Xcode 4.6.3 Раскадровка Класс и Подкласс Ссылка
- 26. Objective C Дисплей WebPage как подкласс UITableView
- 27. Как создать класс и список динамически в C#
- 28. Objective-C Пользовательский класс действия и розетки
- 29. Запретить подкласс класса в Objective-c
- 30. Как создать класс, подкласс и свойства в Lua?
Привет, Барри, мне любопытно, как это можно сделать в образовательных целях, а не практично. Любая идея как? – Boon
Да, я добавил дорожную карту для ее выполнения с использованием среды выполнения Objective-C 2.0. Если у меня будет время, я напишу/протестирую код и отправлю его. –