我有一个 NSMutableArray 包含多个 CGRects 的坐标和大小。我想把它存储到sqlite中。是否可以存储整个数组?还是我应该手动将 CGRects 存储在数据库中?
更新:
这是我从数据库中检索到的数据:
62706c69 73743030 d4010203 04050817 18542474 6f705824 6f626a65 63747358 24766572
73696f6e 59246172 63686976 6572d106 0754726f 6f748001 a3090a0f 55246e75 6c6cd20b
0c0d0e5a 4e532e6f 626a6563 74735624 636c6173 73a08002 d2101112 16582463 6c617373
65735a24 636c6173 736e616d 65a31314 155e4e53 4d757461 626c6541 72726179 574e5341
72726179 584e534f 626a6563 745e4e53 4d757461 626c6541 72726179 12000186 a05f100f
4e534b65 79656441 72636869 76657208 11161f28 32353a3c 40464b56 5d5e6065 6e797d8c
949dacb1 00000000 00000101 00000000 00000019 00000000 00000000 00000000 000000c3
它与我放入数据库之前的完全相同。
编码:
这是我用来检查 NSArray 是否正在存档的代码。我还没有将它放入数据库中,因为我只想确保 NSKeyedUnarchive 正常工作。这里是:
NSData *toData = [NSKeyedArchiver archivedDataWithRootObject:rectsArray];
NSLog(@"The data %@", toData);
NSArray *fromData = [NSKeyedUnarchiver unarchiveObjectWithData:toData];
NSLog(@"The data %@", fromData);
显示toData
存档的表格,但fromData
根本没有显示任何内容。为什么会这样?
这是一个示例rectsArray
:
(
"NSRect: {{83.389008, 179.61432}, {8.775116, -10.616217}}",
"NSRect: {{83.389008, 179.61432}, {8.775116, -10.616217}}",
"NSRect: {{83.389008, 179.61432}, {8.775116, -10.616217}}",
"NSRect: {{96.085426, 179.61432}, {5.2029028, -10.616217}}",
"NSRect: {{101.28833, 179.61432}, {5.8532658, -10.616217}}",
"NSRect: {{107.1416, 179.61432}, {4.5525398, -10.616217}}",
"NSRect: {{115.61544, 179.61432}, {3.2518141, -10.616217}}",
"NSRect: {{115.61544, 179.61432}, {3.2518141, -10.616217}}",
"NSRect: {{118.86726, 179.61432}, {6.5036283, -10.616217}}",
"NSRect: {{118.86726, 179.61432}, {6.5036283, -10.616217}}"
)
如您所见,它是一个 CGRect 数组。