2013-05-19 32 views
0

我試圖在CoreData中保存NSMutableArray。數組包含對象NSDictionary歸檔包含字典的NSArray

的NSDictionary有以下結構

valueDict = 
{ 
    FloorId = F0001; 
    endCoordinates = "NSPoint: {541, 413}"; 
    linePath = "<UIBezierPath: 0x1d0903c0>"; 
    pointsOnLine =  (
    ); 
    startCoordinates = "NSPoint: {418, 504}"; 
}, 

要寫入核心數據我用下面的代碼:粒子陣列是輸入BinaryData

points.parray = [NSKeyedArchiver archivedDataWithRootObject:self.locationsArray]; 

和檢索值我用

locationsArray = [NSKeyedUnarchiver unarchiveObjectWithData:points.parray]; 

當我嘗試檢索它我得到以下錯誤:

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[NSDictionary initWithObjects:forKeys:]: count of objects (0) differs from count of keys (5)' 

我檢查了NSArray和NSDictionary採用NSCoding協議。我在這裏做錯了什麼?

+0

FloorId是什麼類型? –

+0

floorId是一個NSString – ila

+0

是「分」NSManagedObject的一個子類嗎? 「parray」是指向NSData的指針嗎? –

回答

0

解決此問題的最佳方法是創建一個小測試應用程序,或者在應用程序啓動時調用的測試方法。使用相同的鍵和類型創建典型的字典,嘗試將其歸檔,記錄數據大小,然後立即嘗試解除數據存檔。假設它沒有註釋掉一個或多個鍵直到剩下的工作。現在你知道問題的關鍵,並可以更好地確定什麼是錯的。