【发布时间】:2013-05-19 04:21:50
【问题描述】:
我正在尝试将NSMutableArray 保存在CoreData 中。数组包含对象NSDictionary
NSDictionary 具有以下结构
valueDict =
{
FloorId = F0001;
endCoordinates = "NSPoint: {541, 413}";
linePath = "<UIBezierPath: 0x1d0903c0>";
pointsOnLine = (
);
startCoordinates = "NSPoint: {418, 504}";
},
要写入核心数据,我使用以下代码:parray is type 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 协议。我在这里做错了什么?
【问题讨论】:
-
FloorId 是什么类型?
-
floorId 是一个 NSString
-
“points”是 NSManagedObject 的子类吗? “parray”是指向 NSData 的指针吗?
-
从异常中我猜你创建字典的方式是错误的。你能说明你是如何初始化字典的吗?
标签: ios core-data nscoding object-graph