2

我正在关注 Mac Developer 库中的“蓝牙设备访问指南”,了解如何实现 Mac RFCOMM 服务器。在有关如何将服务定义添加到 SDP 数据库的指南中,有一个代码清单使用了已弃用的函数:

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

苹果文档

在谷歌搜索这个函数时,我发现了几个仍然使用这个函数的开源项目。我还发现一些更改日志说这个功能已被删除,我发现一些头文件说明以下内容:

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 等价物?
4

1 回答 1

2

显然是:

IOBluetoothAddServiceDict

功能也已被弃用(但仍然可用)。相反,我应该使用

+[IOBluetoothSDPServiceRecord publishedServiceRecordWithDictionary:]

这似乎不需要使用释放功能。

于 2014-04-01T13:11:16.120 回答