0

ゲームセンターで多人数記憶ゲームを作ろうとしています。

このリンクのチュートリアルに従い、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 エラーが発生し、アプリがクラッシュします。

これは複雑なことだと思いますが、誰かアイデアがありますか?

前もって感謝します。

4

1 に答える 1