我有一个概念性问题 - 在访问standardUserDefaults
时,我是否始终必须使用NSUserDefaults
API?
我在我的应用中保存了很多设置/标志/ NSCoding
信息,用于各种各样的事情。但是对于其中的一些事情,我对自己感到困扰standardUserDefaults
并不自然。我想知道是否可以创建一个新的NSUserDefaults
实体来管理我想要存储的某些类型的信息。
仅举例 - 我正在使用一些后台NSURLSessionDownloadTask
,我想在downloadTask
和启动下载任务的实际用户之间保存一些关系数据。我将这些数据保存到NSUserDefaults
。我只是不确定是否可以访问NSUserDefaults
(以及其他内容)!
[也许我没有解释这一点。遗憾!]
答案 0 :(得分:1)
NSUserDefaults不适合您所描述的内容。
NSUserDefaults实际上是用于非常狭窄和特殊目的的。它主要是与用户互动,让他们设置自己的偏好并保持这些偏好。
它不能用作任何类型的通用存储器。
对于你想要的,你总是可以使用通常的NSDictionary等。如果您需要从多个位置访问它,请将其保留在应用程序委托上或创建单例类。如果您需要在运行期间持久化,请使用类似SQLite的内容。
答案 1 :(得分:1)
您可以做的一件事是使用[[NSUserDefaults alloc] initWithSuiteName:]
创建单独的NSUserDefaults
存储空间。
只需执行[[NSUserDefaults alloc] init]
即可获得与standardUserDefaults
相同的存储空间。
答案 2 :(得分:-1)
据我了解,没有必要专门为数据分类的特定目的创建新的用户默认文件。
NSUserDefaults可以与任何系统文件一样大,并且可以相应地调整数据转储。如果需要新的默认值,请参阅Catfish_Man的答案。此外,这特别针对您处理特定应用程序组的情况。