Перейти к основному содержимому

Просмотр назначения действий

Просмотрите соответствие между физическими действиями и назначенными им функциями устройства.

Предварительные условия

  • Устройство подключено и готово к работе
  • Устройство поддерживает DevicePhysicalOperationsAPI

Справочник API

Фреймворк

AIBuds.xcframework

Импорт

Swift
import AIBuds

Протокол

Соответствие доступно через свойство протокола DevicePhysicalOperationsAPI.

Swift
/// The protocol for device physical operations API.
protocol DevicePhysicalOperationsAPI: DeviceAPI {
    /// Physical operations with functions mapping
    /// - Returns: A dictionary mapping physical operation identifiers to function identifiers.
    ///
    /// The dictionary is structured as follows:
    /// - Keys: Physical operation identifiers. Defined in ``DeviceOperation``.
    /// - Values: Function identifiers. Defined in ``DeviceFunction``.
    var physicalOperationsMapping: [NSNumber: NSNumber]? { get }
}

Свойства

СвойствоТипОписание
physicalOperationsMapping[NSNumber: NSNumber]?Сопоставляет исходное значение DeviceOperation с исходным значением DeviceFunction.

Возвращаемое значение

Это необязательное свойство только для чтения, а не асинхронный метод запроса.

Примеры использования

Swift
import AIBuds

guard let device = device as? DevicePhysicalOperationsAPI else {
    print("Device does not support physical-operation mapping")
    return
}

guard let mapping = device.physicalOperationsMapping else {
    print("Mapping is unavailable")
    return
}

for (operationValue, functionValue) in mapping {
    let operation = DeviceOperation(rawValue: operationValue.intValue)
    let function = DeviceFunction(rawValue: functionValue.intValue)
    print("\(String(describing: operation)) → \(String(describing: function))")
}

Обработка ошибок

У свойства нет обработчика завершения. Учитывайте отсутствие поддержки протокола, значение nil и неизвестные исходные значения перечислений.

Рекомендации

  1. Обрабатывайте значения как исходные значения перечислений: преобразуйте ключи и значения через DeviceOperation и DeviceFunction.
  2. Не додумывайте отсутствующие записи: действие, которого нет в таблице, не считается поддерживаемым.
  3. Обновляйте интерфейс после назначения: после успешного изменения снова прочитайте свойство, если устройство обновляет его.

Примечания

  • Демо SDK читает свойство напрямую и сортирует записи по исходному значению действия.
  • Свойство не использует обратный вызов Result или модель KeyMapping.