2013-10-27 76 views
0

我目前正在構建一個基於iPhone的基於回合的遊戲,該遊戲利用Game Center提供所有網絡功能。我創建了一個自定義用戶界面來顯示本地玩家可以輸入,創建,退出和刪除遊戲的UITableView中的匹配項。GKTurnBasedMatch - 獲取結束日期

我的問題是,在我的單元格中,我想顯示相關日期(最後一個回合,沒有回合時創建的匹配,匹配結束日期以結束比賽狀態)。對於我的生活,我似乎無法找出一個很好的方法來得出比賽結束的確切日期和時間。 GKTurnBasedMatch對象具有很好的creationDate屬性,但在比賽結束時沒有屬性。

目前我只是拉一個參與者的最後一個回合日期,但很明顯,這甚至沒有接近最優。我認爲最好的解決方法是在調用endMatchInTurn時發送的matchData對象中對當前日期進行編碼,但是我希望我在API中的某處丟失了更好的解決方案。

謝謝! Corbin

回答

0

經過大量研究,沒有有效的方法可以通過GameKit API中的-endMatchInTurnWithMatchData方法實際獲取GKTurnBasedMatch結束的時間。但是,我確實有一個完美可行的解決方案,只需要一點額外的工作。無論您使用哪種對象來編碼matchData屬性,只需指定另一個屬性並將其設置爲NSDate即可。然後在調用endMatch方法之前,將新的NSDate屬性設置爲[NSDate date],它返回當前的日期和時間,並在作爲matchData對象發送之前對其進行存檔。我自己的代碼如下:

GameState *stateToSave = [NSKeyedUnarchiver unarchiveObjectWithData:matchToQuit.matchData]; 
stateToSave.matchEndDate = [NSDate date]; 
NSData *endGameData = [NSKeyedArchiver archivedDataWithRootObject:stateToSave]; 
[matchToQuit endMatchInTurnWithMatchData:endGameData completionHandler:^(NSError *error) { 
    // Code 
} 
相關問題