在可可中将 NSMutableArray 写入文件时出现问题
一个真正的初学者问题。 我有一个 NSView 子类,在其中创建一个包含 NSValues 的 NSMutableArray。 当我想使用 writetofile:atomatically: 将数组写入文件时,文件已创建,但它不包含可变数组所包含的任何 NSValues。 有谁知道我如何成功地将这个可变数组写入文件?
谢谢
A real beginners question.
I have a NSView subclass in which I create a NSMutableArray containing NSValues. When I want to write the array to a file using writetofile:atomatically: the file is created but it contains none of the NSValues that the mutable array does contain.
Does anyone know how I successfully can write this mutable array to a file?
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
NSValues 不能保存在 plist 中(这是 writeToFile:atomically: 的作用)。 看一下 此处查看您可以保存的值。 (NSNumber 是一种可以保存的 NSValue,但其他 NSValue 会失败。)
如果你想用 NSValue 保存数组,可以使用 归档 而不是 writeToFile:atomically:。 NSArray 和 NSValue 都支持存档,因此您只需将数组转换为存档并将该数据保存到文件中。 (它也将包括 NSValues。)代码看起来像这样:
要加载它,只需使用:
NSValues can't be saved in a plist (which is what writeToFile:atomically: does). Take a look here for the values you can save. (NSNumber is a kind of NSValue you can save, but other NSValues will fail.)
If you want to save your array with NSValues, you can use archiving instead of writeToFile:atomically:. NSArray and NSValue both support archiving, so you just convert the array to an archive and save that data to a file. (It will include the NSValues as well.) The code looks something like this:
To load it, just use: