Mein Aufruf von endMatchInTurnWithMatchData führt zu der Verbindung zu Service unterbrochen Fehler. Irgendwelche Tipps, worauf Sie achten sollten, um dieses Problem zu diagnostizieren? Xcode 7.3.1, Bereitstellungsziel 9.3endMatchInTurnWithMatchData results in "Die Verbindung zum Dienst namens com.apple.gamed wurde unterbrochen"
-(void)sendGameOver {
GKTurnBasedMatch *currentMatch = [[GameKitHelper sharedGameKitHelper] currentMatch];
// set the game outcome property for the current participant
GKTurnBasedMatchOutcome otherOutcome;
if (self.youAre == game.winningPlayer) {
[currentMatch.currentParticipant setMatchOutcome:GKTurnBasedMatchOutcomeWon];
otherOutcome = GKTurnBasedMatchOutcomeLost;
} else {
[currentMatch.currentParticipant setMatchOutcome:GKTurnBasedMatchOutcomeLost];
otherOutcome = GKTurnBasedMatchOutcomeWon;
}
// all other (only one other) participants get opposite outcome
for (GKTurnBasedParticipant *nextParticipant in currentMatch.participants) {
if (![nextParticipant isEqual:currentMatch.currentParticipant]) {
[nextParticipant setMatchOutcome:otherOutcome];
}
}
// prepare match data
NSDictionary *turn = [NSDictionary dictionaryWithObjects:@[game]
forKeys:@[gameKey]];
NSData *data = [NSKeyedArchiver archivedDataWithRootObject:turn];
NSArray *achievements = [self achievementsToReport:currentMatch];
NSArray *scores = [self scoresToReport:currentMatch];
[currentMatch endMatchInTurnWithMatchData:data scores:scores achievements:achievements completionHandler:^(NSError * _Nullable error) {
if (error) {
NSLog(@"%@", error);
[self setGamePopUpMessage:@"Oops, there was a problem. Try that again."];
}
}];
}
außer dass ich jetzt keine Erfolge für meinen Gegner melden kann. Es ist in meinem Spiel möglich, dass ein Spieler einen Zug macht, der ihn sofort verliert. In diesem Fall möchte ich einen meiner Gegner erreichen, weil sie gewonnen haben. Aber ich bekomme den Fehler: GKAchievement kann nur für einen anderen Spieler eingereicht werden, wenn ein rundenbasiertes Match beendet wird. Das lässt mich denken, dass ich zurück zu verwenden muss: endMatchInTurnWithMatchData: scores; Erfolge: AbschlussHandler: – Gwendyl