Monotouch で NSKeyedUnarchiver のヘルプを探しています
SQLite blob フィールドで辞書項目の配列をストーリー化する
IOS コード
NSData *data = [[NSData alloc] initWithBytes:ptr length:size];
NSKeyedUnarchiver *unarchiver = [[NSKeyedUnarchiver alloc] initForReadingWithData:data];
NSMutableArray *myArray = [unarchiver decodeObjectForKey:@"pricing"];
[unarchiver finishDecoding];
NSMutableArray *MutData = [[NSMutableArray alloc] init];
for (NSDictionary *obj in myArray) {
NSMutableDictionary *element = [[NSMutableDictionary alloc] initWithDictionary:obj];
[MutData addObject:element];
}
これまでのところ、MonoTouchに変換しようとしています
モノタッチコード
NSData data = NSData.FromString(item.pricing);
NSKeyedUnarchiver unarchive = new NSKeyedUnarchiver(data);
unarchive.DecodeObject();
unarchive.FinishDecoding();
NSMutableArray array = unarchive.GetNativeField("pricing") as NSMutableArray;
NSMutableArray mutArray = new NSMutableArray();
for (uint count=0; count < array.Count; count++)
{
NSMutableDictionary mutDict = new NSMutableDictionary(array.ValueAt(count));
mutArray.Add(mutDict);
}
実行時のプロデュースとエラー
未処理のマネージド例外: Objective-C 例外がスローされました。名前: NSInvalidArgumentException 理由: * -[NSKeyedUnarchiver initForReadingWithData:]: 理解できないアーカイブ (0x62、0x70、0x6c、0x69、0x73、0x74、0x30、0x30) (MonoTouch.Foundation.MonoTouchException) at (wrapper managed-to-native) MonoTouch. ObjCRuntime.Messaging:monotouch_IntPtr_objc_msgSend_IntPtr (intptr,intptr,intptr) at MonoTouch.Foundation.NSKeyedUnarchiver..ctor (MonoTouch.Foundation.NSData data) [0x00027] in /Developer/MonoTouch/Source/monotouch/src/Foundation/NSKeyedUnarchiver.g. cs:88 スタックトレース:
新しい NSKeyedUnarchiver(data) 行から
誰かが MonoTouch NSKeyedUnarchiver のチュートリアル/例を提案できますか?
2 誰かがこのエラーを解決できますか?
最後に、プロジェクトがクロスプラットフォームであり、Android で動作することを考えると、これが最善の方法ですか (最終的には)
前もって感謝します