私はあなたがUITouchのセットを扱っていると思います。UITouchはNSCodingを実装していないため、これは機能しません(私は思います)。
各UITouchから必要な情報を抽出し、それをNSCodingに準拠するものに配置する必要があります。
NSSet * someSet = ...;
NSData * serializedSet = [NSKeyedArchiver archivedDataWithRootObject:someSet];
次に、ゲームキットを使用してこのデータを送信します。
もう一方のデバイスは、データを取得すると、それをセットに変換し直します。
NSData * receivedData = ....;
NSSet * set = [NSKeyedUnarchiver unarchiveObjectWithData:receivedData];
次に、セットを自分で処理するために必要なメソッドを呼び出します。ここで一部のUIコンポーネントを変更する可能性があるため、必ずセレクターを呼び出してメインスレッドで実行してください。
また、このタイプの処理は、処理しているタッチイベントがステートレスである場合にのみ機能します。つまり、タッチが以前にどこにあったかは関係ありません。そうしないと、これによりいくつかの問題が発生する可能性があります。タッチイベント後に何が変更されたかのアイデアを抽出し、これを他のデバイスに送信して、UIImageがどのように変更されたか(つまり、どのタイプの処理が行われたか)のデルタでのみ他のデバイスを更新する方がよい場合があります他のデバイスの画像に発生しました)。