我有一个USB "监视器",加载某些设备的设备描述符,并在NSMutableArray
中跟踪它们。
当添加新设备时,我获得回调,并且可以遍历我拥有的设备列表,比较locationID
s(唯一会话id)。
如果没有找到设备的locationID
(应该总是这样),那么我将其添加到数组中。
现在,当设备被移除时,我得到另一个回调。该服务ID与添加设备时使用的服务ID不同。
由于设备已经消失,我无法为它获得设备描述符(因此,没有locationID
)。
如何将此服务ID与我在数组中的设备匹配?
您是否尝试使用IORegistryEntryGetRegistryEntryID
在连接时获得设备的服务对象的唯一ID,并使用您在消失时获得的ID来匹配您的阵列中的设备?据我所知,这应该行得通。(IOService
是IORegistryEntry
的子类,所以你可以在任何IOService
对象上使用IORegistryEntryGetRegistryEntryID
)