Contents

sendExchange(to:data:localizableMessageKey:arguments:timeout:completionHandler:)

Sends an exchange request that contains your game data to one or more participants.

Declaration

func sendExchange(to participants: [GKTurnBasedParticipant], data: Data, localizableMessageKey key: String, arguments: [String], timeout: TimeInterval, completionHandler: (@Sendable (GKTurnBasedExchange?, (any Error)?) -> Void)? = nil)
func sendExchange(to participants: [GKTurnBasedParticipant], data: Data, localizableMessageKey key: String, arguments: [String], timeout: TimeInterval) async throws -> GKTurnBasedExchange

Parameters

  • participants:

    The other participants, excluding the local player and inactive participants, that GameKit sends the exchange request to.

  • data:

    The data that GameKit sends to the other participants.

  • key:

    The identifier for looking up the translated message in the default Localized.strings file. If you use a formatted string with specifiers, provide the arguments.

  • arguments:

    A list of arguments to substitute into the localized string if it’s formatted and contains specifiers.

  • timeout:

    The length of time a participant has to respond to the exchange request. The maximum value is 90 days.

  • completionHandler:

    The block that GameKit calls when it completes the request.

    The block receives the following parameters:

    exchange

    The exchange object that GameKit passes to the other participants.

    error

    Describes an error if it occurs, or nil if the operation completes. An error occurs if any of the participants are inactive.

Mentioned in

Discussion

If your game isn’t running or is in the background on recipient devices, a notification containing the localized message you pass to this method appears. When the participant taps or clicks the notification, GameKit launches or brings the game to the foreground and then invokes the player(_:receivedExchangeRequest:for:) method.

Implement the player(_:receivedExchangeRequest:for:) protocol method to handle the exchange request — for example, show an interface on the receiver’s device to accept or reject the exchange.

See Also

Exchanging Data Between Participants