0件のコメント●対戦機能を実現するために、2つのデバイス間でモンスター情報を交換する必要があります。そのために、Bluetooth通信を利用します。TODO・GameKitフレームワークを用いて、Bluetoothでpeer-to-peer通信を行う。・独自クラスをNSData型に変換するために、NSCodingプロトコルを実装する。Bluetoothを使うにはGameKitフレームワークを追加します。GameKitフレームワークについては、Apple公式のドキュメントがありますので、そちらをどうぞ。KitプログラミングガイドBlutoothでデータの送受信を行うには主にGKPeerPickerControlerとGKSessionオブジェクトを使います。_session;}Bluetoothでデータの送受信をするために実装することを簡単にまとめると次の2つになります。Kitは検出および接続処理の標準的なユーザインターフェイスを提供していて、それがGKPeerPickerControllerです。・connectionTypesMaskを設定connectionTypesMaskには許可するネットワークタイプを指定します。Bluetooth接続のGKPeerPickerConnectionTypeNearbyとインターネット接続のGKPeerPickerConnectionTypeOnlineがあり、デフォルトはBluetooth接続のみで、インターネット接続のみを指定することはできません。インターネット接続を指定する場合はBluetooth接続と共に指定する必要があります。show];また、インターネット接続を指定する場合は、次のデリゲートメソッドを実装する必要がありますが、今回はBluetooth接続のみ許可するので、実装する必要はないです。次に、ピアが見つかった時のデリゲートメソッドを実装します。currentDevice];UIDeviceクラスはデバイスの様々な情報を取得、設定を行えます。今回はピアの選択画面で表示される名前にデバイス名を設定するために使います。displayName:device.nameとすることで同じセッションIDを持つデバイス名が表示することができます。データの交換をする相手のデバイスを選択し、セッションが確立したときのデリゲートメソッドとキャンセル時のデリゲートメソッドを実装します。データの送受信を行うまず、セッションの状態が変化したときに呼び出されるデリゲートメソッドを実装します。sendData:toPeers:withDataMode:error:メソッドを呼び出すことで一部のピアへデータを送信できます。任意のクラスをNSData型に変換するためには、NSCodingプロトコルを実装する必要があります。任意のクラスをNSData型に変換したい場合は、プロトコルにNSCodingを追加し、encodeWithCoder:とinitWithCoder:を実装します。そのためにBattleCreatureクラスに次のようにNSCodingプロトコルを実装します。forKey:@"_name"];}これでBattleCreatureクラスのオブジェクトをNSData型に変換が可能になりました。データの受信は次のデリゲートメソッドを実装することで行います。NSData型でデータを読み込み、それをBattleCreatureクラスのオブジェクトに変換することで、相手のモンスター情報を取得できます。unarchiveObjectWithData:data];}これで、モンスター情報を交換できました〜。Elmastudio。