我想在NSMutableArray
中保存CoreData
。数组包含对象NSDictionary
NSDictionary具有以下结构
valueDict =
{
FloorId = F0001;
endCoordinates = "NSPoint: {541, 413}";
linePath = "<UIBezierPath: 0x1d0903c0>";
pointsOnLine = (
);
startCoordinates = "NSPoint: {418, 504}";
},
要写入核心数据,我使用以下代码:parray是类型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 :(得分:0)
解决此问题的最佳方法是创建一个小型测试应用,或者在应用启动时调用的测试方法。使用相同的键和类型创建典型字典,尝试将其归档,记录数据大小,然后立即尝试取消归档数据。假设它没有注释掉一个或多个键直到剩下的工作。现在你知道了问题的关键,可以更好地确定问题所在。