我正在尝试将我的应用程序数据和用户首选项(存储在NSUserDefaults中)备份为电子邮件附件,并可选择在以后恢复它们。
我只是通过将文件的内容附加到电子邮件中,使我的应用程序数据文件的流程正常工作,但无法确定如何为用户首选项执行等效操作。 “设置”分发包中的Root.plist仅包含设置界面的模板,而不包含当前设置的模板。
将设置读入我自己的plist并将其保存到文档目录是一个选项,但似乎不够优雅且过于复杂。有没有更好的办法?
答案 0 :(得分:1)
参见本教程
http://iphonebyradix.blogspot.in/2011/03/read-and-write-data-from-plist-file.html
要阅读用户默认值,请使用此方法
-(id)getFromNSUserDefaults:(NSString*)pForKey
{
id pReturnObject;
NSUserDefaults *defaults =[NSUserDefaults standardUserDefaults];
pReturnObject = [defaults valueForKey:pForKey];
return pReturnObject;
}
答案 1 :(得分:1)
我不会去寻找存储NSUserDefaults
的plist,因为它没有直接暴露给API,因此是一个可以随时更改的实现细节。
相反,
[[NSUserDefaults standardUserDefaults] dictionaryRepresentation]
会为您提供NSDictionary
,其中包含您应用已存储的所有键值对。
答案 2 :(得分:0)
将设置读入我自己的plist并将其保存到文档目录是一个选项,但似乎不够优雅且过于复杂。还有更好的方法吗?
鉴于没有直接支持你想要的官方API(我知道),我发现编写几行创建你自己的.plist文件的代码并不是很复杂。请参阅yuji的答案作为起点:只需一行,您已经拥有了一个包含所需设置的字典。它能变得多么优雅? : - )
这可能不是您希望听到的答案,但我的建议是:不要试图打击系统,从长远来看,您通常会失败。