Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios GKTurnBasedMatch-获取结束日期_Ios_Iphone_Game Center_Gamekit - Fatal编程技术网

Ios GKTurnBasedMatch-获取结束日期

Ios GKTurnBasedMatch-获取结束日期,ios,iphone,game-center,gamekit,Ios,Iphone,Game Center,Gamekit,我目前正在开发一款基于iPhone turn的游戏,它利用游戏中心的所有网络功能。我创建了一个自定义UI,以在UITableView中显示匹配项,本地玩家可以在其中输入、创建、退出和删除游戏 我的问题是,在我的单元格中,我想显示相关的日期(最后一次轮换、还没有轮换时创建的匹配以及结束匹配状态的匹配结束日期)。就我个人而言,我似乎找不出一个好方法来推断比赛结束的确切日期和时间。GKTurnBasedMatch对象具有creationDate属性,该属性非常好,但没有匹配结束时的属性 目前,我只是拉

我目前正在开发一款基于iPhone turn的游戏,它利用游戏中心的所有网络功能。我创建了一个自定义UI,以在UITableView中显示匹配项,本地玩家可以在其中输入、创建、退出和删除游戏

我的问题是,在我的单元格中,我想显示相关的日期(最后一次轮换、还没有轮换时创建的匹配以及结束匹配状态的匹配结束日期)。就我个人而言,我似乎找不出一个好方法来推断比赛结束的确切日期和时间。GKTurnBasedMatch对象具有creationDate属性,该属性非常好,但没有匹配结束时的属性

目前,我只是拉最后一轮日期的参与者之一,但显然,这甚至不是接近最佳的。我认为最好的解决方法是在调用endMatchInTurn时发送的matchData对象中对当前日期进行编码,但我希望API中缺少更好的解决方案

谢谢!
Corbin

经过大量研究,没有有效的方法通过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
}