ゲームセンターで多人数記憶ゲームを作ろうとしています。
このリンクのチュートリアルに従い、2 つのデバイスをマッチに接続し、マッチを開始しました。
ゲームでは、1 つのデバイスがカードを裏返すと、もう一方のデバイスもそのカードを裏返す必要があります。これを行うには、id タイプの値を他のデバイスに送信する必要があるため、2 つのデバイスでカードを裏返すことができます。
コードは次のとおりです。
- (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 エラーが発生し、アプリがクラッシュします。
これは複雑なことだと思いますが、誰かアイデアがありますか?
前もって感謝します。