我正在尝试使用游戏中心制作多人记忆游戏。
我按照此链接中的教程,将两个设备连接到一个匹配,开始匹配。
在游戏中,当一个设备翻转卡片时,另一个设备也必须翻转该卡片。为此,我必须向另一个设备发送一个 id 类型值,以便我可以在两个设备中翻转卡片。
这是代码;
- (void)gameTouchBegin:(id)target {
[target flipTheCard];
[self sendCardMove:target];
}
- (void)sendCardMove:(id)target {
MessageCard message;
message.message.messageType = kMessageTypeCard;
message.target = target;
NSData* data = [NSData dataWithBytes:&message length:sizeof(MessageCard)];
[self sendData:data];
}
- (void)match:(GKMatch *)match didReceiveData:(NSData *)data fromPlayer:(NSString *)playerID {
if (message->messageType == kMessageTypeCard) {
NSLog(@"Other player flipped the card.");
// I can successfully write this line.
// So I can reach inside this function.
MessageCard * messageInit = (MessageCard *) [data bytes];
id gTarget = (id)messageInit->target;
[gTarget flipTheCard];
// At the three code lines above, I got an error.
}
}
正如我在代码末尾评论的那样,我收到了 EXC_BAD_ACCESS 错误并且应用程序崩溃了。
我知道这是一个复杂的东西,有人有想法吗?
提前致谢。