init(deviceMatchingDictionary:interfaceMatchingDictionaries:interfaceMatchingOption:)
Initializes a criteria object using USB interface matching dictionaries, for the provided USB device matching criteria.
Declaration
init?(deviceMatchingDictionary: [String : any Sendable]?, interfaceMatchingDictionaries: [[String : any Sendable]], interfaceMatchingOption: AAUSBAccessoryMatchingCriteria.InterfaceMatchingOption)Parameters
- deviceMatchingDictionary:
USB device matching dictionary.
- interfaceMatchingDictionaries:
USB interface matching criteria.
- interfaceMatchingOption:
Option specifying how the framework performs interface matching for a USB accessory. For more information on interface matching options, see Init(devicematchingdictionary:interfacematchingdictionaries:interfacematchingoption:).
Discussion
Use createMatchingDictionaryWithVendorID:productID:bcdDevice:deviceClass:deviceSubclass:deviceProtocol:speed:productIDArray: to create a USB device matching dictionary.
Use createMatchingDictionaryWithVendorID:productID:bcdDevice:interfaceNumber:configurationValue:interfaceClass:interfaceSubclass:interfaceProtocol:speed:productIDArray: to create a USB interface matching dictionary.
See USBSpec.h in USBSpec.h User-Space in IOKit for more details about dictionary keys for the USB device/interface matching dictionaries.
Understanding interface matching options
If you initialize the criteria with AAUSBAccessoryMatchingCriteria.InterfaceMatchingOption.matchAll, then it evaluates to true for a USB accessory when
It matches the provided non-
nildeviceMatchingDictionary, andFor the currently set configuration, all the
interfaceMatchingDictionariesmatch at least one of its USB interfaces.
If you initialize the criteria is with AAUSBAccessoryMatchingCriteria.InterfaceMatchingOption.matchAny, then it evaluates to true for a USB accessory when
It matches the provided non-
nildeviceMatchingDictionary, andFor the currently set configuration, any of the
interfaceMatchingDictionariesmatch at least one of its USB interfaces.