Class: GKMatch
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)
-
- delegate
The delegate for the match.
-
- expectedPlayerCount
readonly
The remaining number of players who have not yet connected to the match.
-
- playerIDs
readonly
The player identifiers for the players in the match.
Instance Method Summary (collapse)
-
- chooseBestHostPlayerWithCompletionHandler:
Determines the best player in the game to act as the server for a client-server match.
-
- disconnect
Disconnects the local player from the match.
-
- rematchWithCompletionHandler:
Create a new match with the list of players from an existing match.
-
- sendData:toPlayers:withDataMode:error:
Transmits data to a list of connected players.
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.
- (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.
- (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.
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.
- (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.
- (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.
- (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.