Ios 存档包含字典的NSArray

Ios 存档包含字典的NSArray,ios,core-data,nscoding,object-graph,Ios,Core Data,Nscoding,Object Graph,我正试图在CoreData中保存一个NSMutableArray。数组包含对象NSDictionary NSDictionary具有以下结构 valueDict = { FloorId = F0001; endCoordinates = "NSPoint: {541, 413}"; linePath = "<UIBezierPath: 0x1d0903c0>"; pointsOnLine = ( ); startCoordin

我正试图在
CoreData
中保存一个
NSMutableArray
。数组包含对象
NSDictionary

NSDictionary具有以下结构

valueDict = 
{
    FloorId = F0001;
    endCoordinates = "NSPoint: {541, 413}";
    linePath = "<UIBezierPath: 0x1d0903c0>";
    pointsOnLine =     (
    );
    startCoordinates = "NSPoint: {418, 504}";
},
为了检索我使用的值

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协议。我做错了什么

解决这个问题的最佳方法是创建一个小的测试应用程序,或者在应用程序启动时调用一个测试方法。使用相同的键和类型创建一个典型的字典,尝试归档它,记录数据大小,然后立即尝试取消归档数据。假设它无法注释出一个或多个键,直到剩下的键起作用为止。现在您知道了问题的关键所在,可以更好地确定问题所在。

FloorId是什么类型的?FloorId是NSStringIs“指向”NSManagedObject的子类?“parray”是指向NSData的指针吗?从例外情况来看,我猜您创建字典的方式是错误的。你能告诉我你是如何初始化字典的吗?
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[NSDictionary initWithObjects:forKeys:]: count of objects (0) differs from count of keys (5)'