Поскольку я не могу найти какую-либо документацию по этому вопросу, можно ли создать свой собственный класс Core Foundation? (классы, как в тех, которые могут использоваться с CFRetain() и CFRelease). Я хочу воспользоваться преимуществами полиморфных возможностей и инспекции объектов, встроенными в Core Foundation без накладных расходов Objective-C или создания собственной иерархии объектов.Создание классов Core Foundation
ответ
Будьте предупреждены: я считаю, что Core Foundation не имеет истинного наследования без загрузки Objective-C, и с загрузкой Objective-C вы все равно получите (незначительные) связанные с этим замедления.
Возможно, на нем не будет документации, но это возможно. Это, конечно, не будет чистым. Попробуйте просмотреть через CF-Lite source code (ссылка для Mac OS X 10.5.7), чтобы понять, как реализовать фреймворк.
Обратите внимание, что если накладные расходы на Objective-C вы упоминаете накладные расходы на вызов сообщений, существует множество способов его оптимизации (например, метод -instanceMethodForSelector:
). Вы, скорее всего, потратите больше времени, пытаясь проникнуть в рамки Core Foundation, чем пытаетесь оптимизировать код Objective-C, чтобы довести его до скорости.
Технически, нет классов Core Foundation. Они непрозрачные.
- 1. NSColor Core Foundation коллега?
- 2. Core Foundation in swift 3
- 3. Лицензия Apple Core Foundation
- 4. @property for Core Foundation variable
- 5. Исключение IIK UIKit/Core Foundation
- 6. Core Foundation подходит для isKindOfClass?
- 7. Какие фреймы Foundation и Core Foundation подходят для iOS?
- 8. Создание и использование библиотеки классов .NET Core в проекте ASP.NET
- 9. Visual Studio - создание таргетинга на библиотеку классов .Net Core
- 10. Вызов методов Core-Foundation из Swift
- 11. Foundation._GenericObjCError.NilError from core data batch delete
- 12. Core Foundation/Swift 2: результат CFByteOrderGetCurrent()
- 13. Создание классов классов в C#
- 14. Создание экземпляров классов вложенных классов
- 15. Понимание классов Div в Foundation 4
- 16. Что такое MFC (библиотека классов Microsoft Foundation)?
- 17. Целая диаграмма классов для Cocoa Foundation Framework?
- 18. Создание и создание классов C++
- 19. Шаблон проекта сервера Foundation Foundation
- 20. Создание и использование классов
- 21. создание классов C4
- 22. Создание классов и методов
- 23. Создание полей классов потокобезопасными
- 24. Создание классов пользователем программы
- 25. Создание загрузчика классов
- 26. scala: создание абстрактных классов?
- 27. Создание диаграммы классов C++
- 28. Создание набора классов Python
- 29. Создание экземпляров из классов
- 30. Создание классов из XSD
Спасибо. Я посмотрел на пакет CF-lite, и кажется, что в принципе невозможно создать собственные типы CF, не используя недокументированные/частные функции :( Похоже, я в конечном итоге воспользуюсь хорошим кэшированием Ob'-C и IMP. –
Если вам действительно нужно, вы можете написать статические обертки C-стиля для объектов Objective-C с помощью кэширования IMP и прямого доступа к ivar ... черт возьми, я уверен, что в среде, отличной от GC, вы тоже можете свернуть свое собственное выделение , –