На самом деле гораздо более приятная оболочка CoreFoundation и Objective-C для этих API в Leopard, хотя это частная структура в 10.5 .
Хорошей новостью является то, что он с открытым исходным кодом, так что вы можете получить исходный код непосредственно из Apple . Плохая новость заключается в том, что он ссылается на пару заголовков в других частных платформах (DirectoryServiceCore/CSharedData.h
и CoreFoundation/CFRuntime.h
), что затрудняет создание собственной копии для встраивания. Однако вы можете сделать это, но для этого вам нужно будет извлечь соответствующие заголовки из других проектов.
Тем временем, однако, вы можете найти код в этом проекте в качестве иллюстрации для написания своего собственного.
Для более полезного встраиваемого кода вы можете взглянуть на проект DSTools с открытым исходным кодом , в частности на подпрограммы DSObjCWrappers. Раньше это было частью приложения loginwindow, но, насколько я помню, оно было выделено в 10.3 или 10.4. Однако, в отличие от нового, он не требует доступа к каким-либо частным API. Я также знаю из личного опыта, что можно просто скопировать и импортировать всю папку DSObjCWrappers прямо в ваш собственный проект и использовать его на месте, хотя я бы предложил изменить все имена классов, используя поддержку рефакторинга XCode, чтобы избежать конфликтов в пространстве имен (т.е. замените «DSoAttribute» на «MyDSAttribute» и т. д.).