我想保存像用户ID和传递单词等内容(属性), 直到现在我用plist这样做,但我明白plist可以从itunes和这样的东西访问,所以还有其他什么来保存这样的东西?
答案 0 :(得分:4)
您应该使用Keychain Services。
答案 1 :(得分:3)
如果要存储用户名/密码值,最好将它们存储在Keychain中。有关如何执行此操作的示例,请参阅此blog entry。
答案 2 :(得分:3)
当应用程序退出时,没有一种简单的方法可以专门加密数据。如果您需要始终在磁盘上加密的所有内容,钥匙串服务是唯一的方法。
但是,iOS也支持数据保护。如果用户在设备上设置了密码,则设备可以自动加密应用程序的文件。这称为“文件保护”,有多种选择。例如,NSDataWritingFileProtectionComplete
选项会导致文件被完全加密,除非设备已解锁。如果有人不知道设备的密码,他们就根本无法访问这些文件。
要使用此API,请使用要编写的文件的内容创建NSData。然后传递文件保护选项,如下所示:
NSData *theData;
NSError *error;
[theData writeToURL:someURL
options:NSDataWritingFileProtectionComplete
error:&error];
如果您只是保存用户名/密码信息,则应将密码存储在Keychain中。用户名将是您检索密码的密钥,因此您需要将其存储在其他位置。您可以使用上面详述的文件保护为用户名添加一定程度的保护,但它不像钥匙串那样安全。
答案 3 :(得分:0)
核心数据可能是一个很好的解决方案,我认为任何人都无法轻易访问核心数据。
答案 4 :(得分:0)
以下是在App Delegate中使用applicationWillTerminate
的教程。但它不使用KeyChain服务,您需要添加它。它改为使用plist。
http://servin.com/iphone/iPhone-Save-and-Restore-Mini-Course.html