5

一个真正的初学者问题。我有一个 NSView 子类,我在其中创建了一个包含 NSValues 的 NSMutableArray。当我想使用 writetofile 将数组写入文件时:自动:文件已创建,但它不包含可变数组包含的任何 NSValue。有谁知道我如何成功地将这个可变数组写入文件?

谢谢

4

1 回答 1

15

NSValues 不能保存在 plist 中(这是 writeToFile:atomically: 所做的)。在此处查看您可以保存的值。(NSNumber 是一种可以保存的 NSValue,但其他 NSValue 会失败。)

如果你想用 NSValues 保存你的数组,你可以使用归档而不是 writeToFile:atomically:。NSArray 和 NSValue 都支持存档,因此您只需将数组转换为存档并将该数据保存到文件中。(它也将包括 NSValues。)代码如下所示:

[NSKeyedArchiver archiveRootObject:myArray toFile:@"myPath"];

要加载它,只需使用:

NSArray *myArray = [NSKeyedUnarchiver unarchiveObjectWithFile:@"myPath"];
于 2009-04-15T10:56:28.390 回答