一个真正的初学者问题。我有一个 NSView 子类,我在其中创建了一个包含 NSValues 的 NSMutableArray。当我想使用 writetofile 将数组写入文件时:自动:文件已创建,但它不包含可变数组包含的任何 NSValue。有谁知道我如何成功地将这个可变数组写入文件?
谢谢
一个真正的初学者问题。我有一个 NSView 子类,我在其中创建了一个包含 NSValues 的 NSMutableArray。当我想使用 writetofile 将数组写入文件时:自动:文件已创建,但它不包含可变数组包含的任何 NSValue。有谁知道我如何成功地将这个可变数组写入文件?
谢谢
NSValues 不能保存在 plist 中(这是 writeToFile:atomically: 所做的)。在此处查看您可以保存的值。(NSNumber 是一种可以保存的 NSValue,但其他 NSValue 会失败。)
如果你想用 NSValues 保存你的数组,你可以使用归档而不是 writeToFile:atomically:。NSArray 和 NSValue 都支持存档,因此您只需将数组转换为存档并将该数据保存到文件中。(它也将包括 NSValues。)代码如下所示:
[NSKeyedArchiver archiveRootObject:myArray toFile:@"myPath"];
要加载它,只需使用:
NSArray *myArray = [NSKeyedUnarchiver unarchiveObjectWithFile:@"myPath"];