iOS保存UIViews数组到文件然后重新加载

时间:2012-11-20 17:16:24

标签: ios xcode nsmutablearray nsarray save

我的应用程序终止时,我无法保存数据。

目前我有一个可变的字符串数组,当应用程序加载此数组时,它会在uicollection视图中加载,保存并加载正常。

然后我有一个可变数组的UIViews可变数组。

(FIRST Mutable ARRAY - >第二个可变数组1,第二个数组2等 - > UIView 1,UIView 2等)

这是不会保存的。

是否可以保存UIViews的Mutable数组?

我不确定我是否以最好的方式措辞,但我希望你理解。

我可以根据需要发布代码,但我以本教程为基础

http://mobileorchard.com/how-to-make-an-iphone-app-part-6-saving-data/

感谢任何帮助。

3 个答案:

答案 0 :(得分:1)

如果您使用的是自定义类,则需要确保它实现NSCoding协议,以便将其保存到磁盘。

要保存并加载它,您需要使用NSKeyedArchiverNSKeyedUnarchiver

// SAVE
[NSKeyedArchiver archiveRootObject: myArray toFile: myFilePath]

// LOAD
NSMutableArray *myArray = [NSKeyedUnarchiver unarchiveObjectWithFile: myFilePath];

常规writeToFile:atomically:writeToURL:atomically:方法只允许您编写属性列表对象。如果数组中有任何非属性列表对象,它们将失败。属性列表对象包括:NSArrayNSDictionaryNSStringNSDataNSDateNSNumber

答案 1 :(得分:0)

NSArray UIViewsNSArray NSStrings之间应该没有区别。它们都是Obj-C对象而不是性能(NSString的足迹与可能包含其他对象的UIView相比非常小),NSArray在两者中的行为都相同例。

如果您需要进一步的帮助,则需要发布代码。

答案 2 :(得分:0)

这可能听起来很傻,但是你分配了NSMutableArray吗?

我已经忘记了几次,这是一个容易忘记的事情。