與NSKeyedUnarchiver在MonoTouch的MonoTouch的NSKeyedUnarchiver
尋求幫助,在SQLite BLOB字段Storying的字典項的數組
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的,到目前爲止我有
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, ×69(0x73)的,0x74,爲0x30,的0x30) (MonoTouch.Foundation.MonoTouchException)在(包裝 管理-to-天然) MonoTouch.ObjCRuntime.Messaging:monotouch_IntPtr_objc_msgSend_IntPtr (IntPtr的,IntPtr的,IntPtr的)在 MonoTouch.Foundation.NSKeyedUnarchiver..ctor (MonoTouch.Foundation.NSData數據)[0x00027]在 /開發商/ MonoTouch的/ Source/monotouch/src/Foundation/NSKeyedUnarchiver.g.cs:88 Stacktrace:
從新NSKeyedUnarchiver(數據)線
人們可以有人建議對MonoTouch的NSKeyedUnarchiver教程/例子嗎?
兩個可以有人幫助這個錯誤?
末這是在光的最佳方式,該項目是要跨平臺和工作的Android(最終)
在此先感謝
非常感謝,嘗試FromBytes也沒有幫助。它會運行,但除了初始字節[] item.pricing以外,一切都是空白/空/空。我可以嘗試的任何其他東西 – NewDev
你會得到與FromBytes相同的異常嗎? –