xcode - 编码 NSMutableArray

标签 xcode nsmutablearray nscoding

我有一个包含各种 NSString 对象和变量的对象,我使用 NSCoding 将它们存档到磁盘上的文件中,然后再取消存档。到目前为止,一切都运行良好。

今天,我想向对象添加一个 NSMutableArray 并尝试使用以下代码进行编码:

[encoder encodeObject:myArray ForKey:@"myArray"];

然后使用以下方法对其进行解码:
[self setMyArray:[decoder decodeObjectForKey:@"myArray"]];

它似乎不起作用,虽然我在编码或解码本身中没有遇到任何错误,但如果我在从文件解码后尝试修改数组的值,我确实会收到错误。

我确定我在这里做的完全错误,但不完全确定是什么。我在想这可能与在解压缩期间没有正确分配有关。

有什么事情看起来很明显是问题的根源?

最佳答案

It doesn't appear to be working, and while I don't get any errors in the encoding or decoding itself, I do get an error if I try to modify the value of the array after decoding from the file.



解码文件会为您提供不可变的对象,无论它们在编码时是可变的还是不可变的。你没有做任何特别错误的事情——它像宣传的那样工作。

this answer对于类似问题的另一个示例,以及解决方案:
[self setMyArray:[[decoder decodeObjectForKey:@"myArray"] mutableCopy];

关于xcode - 编码 NSMutableArray,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10858895/

相关文章:

ios - Xcode 不在表格单元格上使用 NSMutableArray

objective-c - 在 objective-c 中使用百分号(非模数)

ios - 设置数据库中索引值的数组

objective-c - 将 NSMutableArray 传递给 NSWindowController

ios - Swift 从父类(super class)函数中相应的子类调用类函数

ios - 后台获取间歇性数据丢失 - NSKeyedUnarchiver 可以从文档目录返回 nil 吗?

xcode - initWithContentsOfURL 通常返回 nil

ios - Fabric 为我的 iOS 应用程序通知我 "STABILITY ALERT",而应用程序运行正常,没有任何崩溃

ios - 如何在一个 NSMutableArray 中添加对象 multi NSArray

iphone - 符合nscoding的对象不会writetofile