Создание базовых базовых классов - PullRequest
5 голосов
/ 02 августа 2009

Поскольку я не могу найти какую-либо документацию по этому предмету, возможно ли создать свой собственный базовый "класс" Foundation? (классы, подобные тем, которые можно использовать с CFRetain () и CFRelease). Я хочу воспользоваться преимуществами полиморфных возможностей и проверки объектов, встроенных в Core Foundation, без использования Objective-C или создания собственной иерархии объектов.

Ответы [ 2 ]

4 голосов
/ 03 августа 2009

Будьте предупреждены: я считаю, что Core Foundation не имеет истинного наследования без загрузки Objective-C, а с загрузкой Objective-C вы все равно получите (незначительные) связанные замедления.

Вероятно, на нем не будет никакой документации, но это возможно. Это конечно не будет чистым. Попробуйте просмотреть исходный код CF-Lite (ссылка для Mac OS X 10.5.7), чтобы почувствовать реализацию фреймворка.

Обратите внимание, что если упомянутые вами издержки Objective-C являются накладными расходами на вызов сообщения, существует множество способов его оптимизации (например, метод -instanceMethodForSelector:). Скорее всего, вы потратите больше времени, пытаясь проникнуть в среду Core Foundation, чем пытаться оптимизировать код Objective-C, чтобы ускорить его.

0 голосов
/ 02 августа 2009

Технически, нет базовых базовых классов. Они непрозрачные типы.

...