title: iOS Gamecenter Programmatic Matchmaking
body: <p>I'm trying to implement a real-time multiplayer game with a custom UI (no <code>GKMatchMakerViewController</code>). I'm using <code>startBrowsingForNearbyPlayersWithReachableHandler:
  ^(NSString *playerID, BOOL reachable)</code> to find a local player, and then initiating a match request with the <code>GKMatchmaker</code> singleton (which I have already initiated). </p>
  
  <p>Here's where I'm having trouble. When I send a request, the completion handler fires almost immediately, without an error, and the match it returns has an expected player count of zero. Meanwhile, the other player definitely has not responded to the request. </p>
  
  <p>Relevant code:</p>
  
  <pre><code>- (void) findMatch
  {
  GKMatchRequest *request = [[GKMatchRequest alloc] init];
  request.minPlayers = NUM_PLAYERS_PER_MATCH; //2
  request.maxPlayers = NUM_PLAYERS_PER_MATCH; //2
  if (nil != self.playersToInvite)
  {
      // we always successfully get in this if-statement
      request.playersToInvite = self.playersToInvite;
      request.inviteeResponseHandler = ^(NSString *playerID, GKInviteeResponse
                                         response)
      {
          [self.delegate updateUIForPlayer: playerID accepted: (response ==
                                                                GKInviteeResponseAccepted)];
      };
  }
  request.inviteMessage = @"Let's Play!";
  
  [self.matchmaker findMatchForRequest:request
      withCompletionHandler:^(GKMatch *match, NSError *error) {
          if (error) {
              // Print the error
              NSLog(@"%@", error.localizedDescription);
          }
          else if (match != nil)
          {
              self.currentMatch = match;
              self.currentMatch.delegate = self;
  
              // All players are connected
              if (match.expectedPlayerCount == 0)
              {
                  // start match
                  [self startMatch];
              }
              [self stopLookingForPlayers];
          }
      }];
  }
  </code></pre>