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