在iCloud中存储NSDictionary(存储视图控制器)

时间:2012-11-24 02:29:38

标签: ios icloud

我的视图控制器有很多bools,字符串和整数,它们用NSCoding保存,然后几个类保存了更多相同类型的信息。我把视图控制器放在一个NSMutableDictionary中并用NSKeyedArchive保存它。

NSMutableDictionary *rootObject;
rootObject = [NSMutableDictionary dictionary];
[rootObject setValue:self.controllers forKey:@"controllers"];
[NSKeyedArchiver archiveRootObject:rootObject toFile:path];

使用NSKeyedUnarchiver设置视图控制器会带回所有NSCoded数据并且运行良好。

我正在考虑实施iCloud,并对最好的方法感到困惑。如果我将NSMutableDictionary存储在专门用于保存的UIDocument类中,然后将其加载,它是否会携带NSCoded值?

1 个答案:

答案 0 :(得分:2)

归档只是意味着将某些内容转换为NSData对象。 NSData对象是NSData对象。它不会神秘地失去其完整性,因为它存储在云中。如果它从您保存它的任何地方取消归档时都有效(例如用户默认值,磁盘上的文件等),那么当您从云中取消归档时它将起作用。

您可能不需要UIDocument的开销。请记住,iCloud可以有效地让您在云中保留相当于NSUserDefaults类型的数据(“键值存储”) - 并且它不会计入用户的5MB限制。