Class: GKMatch

Inherits:
NSObject show all

Overview

A GKMatch object provides a peer-to-peer network between a group of devices that are connected to Game Center. Matches provide transmit both voice and game data. Your game never directly allocates GKMatch objects. Instead, it uses the GKMatchmaker class to programmatically find a match with other interested players or a GKMatchmakerViewController object to display a user interface to the player.

Instance Attribute Summary (collapse)

Instance Method Summary (collapse)

Methods inherited from NSObject

#!, #!=, #!~, #, #==, #===, #=~, #Rational, #__callee__, #__method__, #__send__, #__type__, `, alloc, allocWithZone:, #autoContentAccessingProxy, autoload, autoload?, autorelease_pool, #awakeAfterUsingCoder:, binding, block_given?, caller, cancelPreviousPerformRequestsWithTarget:, cancelPreviousPerformRequestsWithTarget:selector:object:, catch, class, classFallbacksForKeyedArchiver, #classForCoder, #classForKeyedArchiver, classForKeyedUnarchiver, #clone, conformsToProtocol:, #copy, copyWithZone:, #dealloc, #define_singleton_method, description, display, #doesNotRecognizeSelector:, #dup, #enum_for, #eql?, #equal?, #extend, fail, #finalize, format, #forwardInvocation:, #forwardingTargetForSelector:, framework, #freeze, #frozen?, getpass, gets, global_variables, #init, initialize, #initialize_clone, #initialize_copy, #initialize_dup, #inspect, instanceMethodForSelector:, instanceMethodSignatureForSelector:, #instance_eval, #instance_exec, #instance_of?, #instance_variable_defined?, #instance_variable_get, #instance_variable_set, #instance_variables, instancesRespondToSelector:, isSubclassOfClass:, #is_a?, iterator?, #kind_of?, lambda, load, load_bridge_support_file, load_plist, local_variables, loop, #method, #methodForSelector:, #methodSignatureForSelector:, #methods, #mutableCopy, mutableCopyWithZone:, new, #nil?, open, p, #performSelector:onThread:withObject:waitUntilDone:, #performSelector:onThread:withObject:waitUntilDone:modes:, #performSelector:withObject:afterDelay:, #performSelector:withObject:afterDelay:inModes:, #performSelectorInBackground:withObject:, #performSelectorOnMainThread:withObject:waitUntilDone:, #performSelectorOnMainThread:withObject:waitUntilDone:modes:, print, printf, #private_methods, proc, #protected_methods, #public_method, #public_methods, #public_send, putc, puts, raise, rand, readline, readlines, #replacementObjectForCoder:, #replacementObjectForKeyedArchiver:, require, resolveClassMethod:, resolveInstanceMethod:, #respond_to?, #respond_to_missing?, select, #send, setVersion:, #singleton_methods, sprintf, srand, superclass, #taint, #tainted?, #tap, test, throw, #to_plist, #to_s, trace_var, trap, #trust, #untaint, untrace_var, #untrust, #untrusted?, version

Constructor Details

This class inherits a constructor from NSObject

Dynamic Method Handling

This class handles dynamic methods through the method_missing method in the class NSObject

Instance Attribute Details

- (Object) delegate

The delegate for the match. You must set a delegate to receive data from other members of the match.

Returns:

- (Integer) expectedPlayerCount (readonly)

The remaining number of players who have not yet connected to the match. (read-only) The value of this property is decremented whenever a player connects to the match. When its value reaches 0, all expected players are connected, and your game can begin the match.

Returns:

- (Array) playerIDs (readonly)

The player identifiers for the players in the match. (read-only) The playerIDs property initially includes the player identifiers for any players already connected to the match; the array may initially be empty. As each new player connects to the match, that player’s identifier is added to the array.

Returns:

Instance Method Details

- (Object) chooseBestHostPlayerWithCompletionHandler(completionHandler)

Determines the best player in the game to act as the server for a client-server match. Calling this method causes Game Kit to attempt to estimate which player has the best overall network connection using a variety of metrics such as bandwidth, latency and network reliability. Typically, you call this method when your game implements a client-server model on top of the match’s peer-to-peer connection. See “Designing Your Network Game” in Game Center Programming Guide.When this method is called, it creates a new background task to handle the request. The method then returns control to your game. Later, when the task is complete, Game Kit calls your completion handler. Keep in mind that the completion handler may be called on a thread other than the one originally used to invoke the method. This means that the code in your block needs to be thread-safe.

Parameters:

  • completionHandler (Object)

    A block to be called after the score is reported.The block receives the following parameter:playerIDThe player identifier for the player with the best estimated network performance, or nil if a player could not currently be determined.

  • playerID (NSString *playerID)

    The player identifier for the player with the best estimated network performance, or nil if a player could not currently be determined.

Returns:

- (Object) disconnect

Disconnects the local player from the match. Your game should call disconnect before removing the last strong reference to the match object. Calling disconnect notifies other players that you have left the match.

Returns:

- (Object) rematchWithCompletionHandler(completionHandler)

Create a new match with the list of players from an existing match. Calling this method uses auto-matching to recreate a previous match. A new match with the same set of players is created and returned. If your game attempts to recreate matches using this method, each instance of your game on each device should call this method.When this method is called, it creates a new background task to handle the request. The method then returns control to your game. Later, when the task is complete, Game Kit calls your completion handler. Keep in mind that the completion handler may be called on a thread other than the one originally used to invoke the method. This means that the code in your block needs to be thread-safe.

Parameters:

  • completionHandler

    A block to be called after the match is created.The block receives the following parameter:matchThe new match. If an error occurred, this parameter’s value is nil.errorIf an error occurred, this parameter holds an error object that describes the problem. If the match was successfully recreated, this parameter’s value is nil.

  • match

    The new match. If an error occurred, this parameter’s value is nil.

  • error

    If an error occurred, this parameter holds an error object that describes the problem. If the match was successfully recreated, this parameter’s value is nil.

Returns:

- (Boolean) sendData(data, toPlayers:*)

Transmits data to a list of connected players. The match queues the data and transmits it when the network becomes available.

Parameters:

  • data (NSData)

    The bytes to be sent.

  • players (Array)

    An array containing the identifier strings for the list of players who should receive the data.

  • mode (GKMatchSendDataMode)

    The mechanism used to send the data.

  • error (Pointer)

    If the data could not be queued, on return, this parameter holds an NSError object describing the error.

Returns:

  • (Boolean)

    YES if the data was successfully queued for transmission; NO if the match was unable to queue the data.