OSX устарела функции Bluetooth

Я следую "Руководству по доступу к устройству Bluetooth" в библиотеке Mac Developer, чтобы узнать, как реализовать сервер Mac RFCOMM. Часть руководства по добавлению определения сервиса в базу данных SDP содержит листинг кода, в котором используется устаревшая функция:

// Now that we have an IOBluetoothSDPServiceRecord object,
// we no longer need the IOBluetoothSDPServiceRecordRef.
IOBluetoothObjectRelease( serviceRecordRef );

Документация Apple

При поиске этой функции я обнаружил несколько проектов с открытым исходным кодом, которые все еще используют эту функцию. Я также нашел несколько журналов изменений, в которых говорится, что эта функция была удалена, и я нашел некоторую документацию заголовка, в которой говорится следующее:

The ref counting scheme allows the IOBluetoothObjectRefs to be freed 
when they are no longer used. When the ref count reaches zero, 
the target object will be freed.

***      DEPRECATED IN BLUETOOTH 2.2 (Mac OS X 10.6) ***      
You should transition your code to Objective-C equivalents. ***      
This API may be removed any time in the future.

Исходя из этого, мои вопросы:

  • Почему в документации Mac используется устаревшая функция?
  • Что такое эквивалент Objective-C?

1 ответ

Решение

Видимо:

IOBluetoothAddServiceDict

функция также устарела (но все еще доступна). Вместо этого я должен использовать

+[IOBluetoothSDPServiceRecord publishedServiceRecordWithDictionary:]

который, кажется, не требует использования функции релиза.

Другие вопросы по тегам