【发布时间】:2015-01-14 21:54:30
【问题描述】:
据我所知,在 iOS 中可以通过三种方式持久写入设备:
- NSUserDefaults
- 自定义对象 - 存档并写入 NSDocuments 中的 PATH
- SQLite
Apple 提供了一种机制来防止带有 #2 的 iCloud 备份,即
- (BOOL)addSkipBackupAttributeToItemAtURL:(NSURL *)URL
我使用 NSUserDefaults 来存储三个图像,但要遵守 iOS 数据存储指南 - 如何使用 NSUserDefaults 防止 iCloud 备份?
这个问题已经在 SO 上被问过好几次了,但还没有明确的全面答案。
是否有这样的功能,或者我必须使用方法#2 更改存储图像。我希望有一些方便的东西,比如:
- (BOOL)addSkipBackAttributeForStandardUserDefaultsKey:(NSString *)
存在。
【问题讨论】:
-
你的方法似乎有点奇怪。为什么不能将图像存储到文档目录?为什么你需要在 NSUserdefaults 中这样做?
-
我当然可以修改我的代码以遵守 #2 中的机制,但我希望有一种更简单的方法,类似于 #2 如何防止 iCloud 备份。苹果存储数据的机制不能遵守它自己的指导方针,这似乎很奇怪。我只是假设有一些我还不明白的东西,或者我在学习 iOS 的地方错过了一些信息。也许用 NSUserDefaults 存储图像是个坏主意,但我不明白为什么。
-
NSUserdefaults 可用于存储少量数据,控制应用行为或存储应用配置密钥等。您可以将图像添加到文档目录并使用
addSkipBackupAttributeToItemAtURL跳过 iCloud 备份.没有像addSkipBackAttributeForStandardUserDefaultsKey这样的机制来防止 NSUserDefaults 数据。它将自动备份,因为它包含用户特定的数据,如用户设置和用户配置。 -
Midhun MP:NSUserDefaults 非常适合存储图像和其他任意数据。我已经成功使用了几年,没有任何问题。我很少需要保存到 NSDocumentDirectory 或其他任何地方。
标签: ios nsuserdefaults icloud