私のアプリケーションには、matchDataDictionary という辞書があり、次のように設定しています。
[[GCTurnBasedMatchHelper sharedInstance].matchDataDictionary setObject:deck forKey:@"deck"];
ここで、deck は Deck のインスタンスです: https://gist.github.com/naderhen/4711899
次に、次の方法でアーカイブ/アーカイブ解除をテストしようとしています:
アーカイブ(これはうまくいくようです):
NSMutableData *newData = [[NSMutableData alloc] init];
NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc] initForWritingWithMutableData:newData];
[archiver encodeObject:[GCTurnBasedMatchHelper sharedInstance].matchDataDictionary forKey:@"root"];
[archiver finishEncoding];
NSLog(@"Archived Data: %@", newData);
アーカイブ解除 (機能しません):
NSKeyedUnarchiver *unarchiver = [[NSKeyedUnarchiver alloc] initForReadingWithData:newData];
NSMutableDictionary *matchDataDictionary = [unarchiver decodeObjectForKey:@"root"];
[unarchiver finishDecoding];
NSLog(@"Unarchived Data: %@", matchDataDictionary);
このデータを効果的にアーカイブし、その後アーカイブを解除する方法についてのガイダンスをいただければ幸いです。それが役立つ場合、これは GameKit フレームワークを使用したターンベースのゲームのためのものなので、現在の試合の matchData を介して送信するユーザー アクションを準備しようとしています。
また!「Tiles」配列を含めるように Deck エンコーディングを修正する方法についてのアドバイスをいただければ幸いです。
本当にありがとう!
ネーダー