在可可中将 NSMutableArray 写入文件时出现问题

发布于 2024-07-17 06:46:37 字数 187 浏览 9 评论 0原文

一个真正的初学者问题。 我有一个 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

卷耳 2024-07-24 06:46:37

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

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

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

要加载它,只需使用:

NSArray *myArray = [NSKeyedUnarchiver unarchiveObjectWithFile:@"myPath"];

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:

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

To load it, just use:

NSArray *myArray = [NSKeyedUnarchiver unarchiveObjectWithFile:@"myPath"];
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文