【问题标题】:problem writing a NSMutableArray to file in cocoa将 NSMutableArray 写入可可文件的问题
【发布时间】:2009-04-15 10:36:20
【问题描述】:

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

谢谢

【问题讨论】:

    标签: cocoa nsmutablearray writefile


    【解决方案1】:

    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"];
    

    【讨论】:

    • 我改用了 NSArchiver 和 NSArchiver 并且效果很好。谢谢
    • 不客气。请注意,现在 NSKeyed[Un]Archiver 优于 NS[Un]Archiver。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-02-04
    • 1970-01-01
    • 2011-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多