コードの問題をデバッグしようとしていましたが、奇妙な現象に遭遇しました。ブレークポイントがトリガーされたときにデバッグ領域でこれを見つけました:
このキーには複数の値があることを確認したのは正しいです@"6898173"
か??
これにはどのような原因が考えられますか? GKSession
文字列リテラルを使用してこれらのキーと値のペアを設定するのではなく、送信から取得およびデコードされた文字列の部分文字列を取得します。
役立つ可能性のあるものが他にある場合に備えて、私はまだこれを xcode のデバッグ領域に置いています。
編集:
リクエストに応じて、2 つの文字列のうちの 1 つを作成するコードを次に示します (別の文字列は以前に作成されました)。
[carForPeerID setObject:[[MultiScreenRacerCarView alloc] initWithImage:[UIImage imageNamed:@"simple-travel-car-top_view"] trackNumber:[[[NSString stringWithUTF8String:data.bytes] substringWithRange:range] intValue]] forKey:[[NSString stringWithUTF8String:[data bytes]] substringFromIndex:9]];
の文字列は次のdata
よう
になります。car00.0146898173
編集:
データを送信するコード:
[self.currentSession sendData:[[NSString stringWithFormat:@"car%i%@%@", [(MultiScreenRacerCarView *)[carForPeerID objectForKey:peerID] trackNumber], speed, [(MultiScreenRacerCarView *)[carForPeerID objectForKey:peerID] owner]] dataUsingEncoding:NSUTF8StringEncoding] toPeers:@[(NSString *)[peersInOrder objectAtIndex:(self.myOrderNumber + 1)]] withDataMode:GKSendDataReliable error:nil];
読みづらくてすみません。そのたった1行。