Contents

manager(_:didUpdate:)

Tells the delegate when a water submersion event occurs.

Declaration

func manager(_ manager: CMWaterSubmersionManager, didUpdate event: CMWaterSubmersionEvent)

Parameters

  • manager:

    The manager for water submersion data.

  • event:

    An event indicating that the submersion state has changed.

Discussion

Implement this method to respond to changes in the device’s submersion state.

nonisolated func manager(_ manager: CMWaterSubmersionManager, didUpdate event: CMWaterSubmersionEvent) {

    let submerged: Bool?
    switch event.state {
    case .unknown:
        logger.info("*** Received an unknown event ***")
        submerged = nil

    case .notSubmerged:
        logger.info("*** Not Submerged Event ***")
        submerged = false

    case .submerged:
        logger.info("*** Submerged Event ***")
        submerged = true

    @unknown default:
        fatalError("*** unknown event received: \(event.state) ***")
    }

    Task {
        await myAdd(event: event)
        if let submerged {
            await mySet(submerged: submerged)
        }
    }
}

See Also

Receiving updates