簡體   English   中英

GameCenter-GKTurnBasedMatch.loadMatchesWithCompletionHandler返回nil數組

[英]GameCenter - GKTurnBasedMatch.loadMatchesWithCompletionHandler returns nil array

我已經為我的游戲設置了GameCenter回合制比賽。 現在,我只是想顯示當前GK播放器的當前比賽列表。

這是我的代碼:

  GKTurnBasedMatch.loadMatchesWithCompletionHandler { (matchesOpt, errorOpt) in

    if let error = errorOpt {
      print("Error loading matches: \(error.localizedDescription)")
    } else if let matches = matchesOpt {
      self.matches = matches
      self.gamesTableView.reloadData()
    } else {
      print("Matches array is nil")
    }
  }
}

第三種情況總是命中,matches數組為nil。

我認為應該有比賽。 我正在使用

GKTurnBasedMatch.findMatchForRequest 

開始比賽,並且成功了。 此外,如果我注意到findMatchForRequest中的匹配項的matchId,然后調用

GKTurnBasedMatch.loadMatchWithID(matchId)

它找到具有正確匹配數據和所有內容的匹配項。

有誰知道我如何獲得loadMatchesWithCompletionHandler來返回我可以通過id檢索的相同游戲?

編輯:這是驗證碼:

GKLocalPlayer.localPlayer().authenticateHandler = { (viewControllerOpt, errorOpt) in

  NSLog("GK local player authentication finished. Error: \(errorOpt)")
  if let viewController = viewControllerOpt {
    self.presentViewController(viewController, animated: true, completion: nil)
  }

  GKLocalPlayer.localPlayer().registerListener(self)

} 

似乎最近有很多人遇到這個問題。 不確定是否相關,但是引用的示例始終使用swift。 基於如何列出播放器的所有可用GKTurnBasedMatches? 看起來只要創建排行榜就可以解決問題。

根據https://stackoverflow.com/a/34056115/1641444上的線程,似乎Game Center有時會變得愚蠢,無論出於什么原因,創建排行榜/成就,甚至只是更改默認設置,踢都會重新啟動付諸行動。

自兩個星期以來,我遇到了同樣的問題。 從一秒鍾到另一秒鍾,它一直在工作,@ apple似乎是一個問題。 進行任何更改,然后重試:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM