我有一个应用需要访问一组无法存储在磁盘上的用户数据。我过去的典型方法是创建一个单例来保存这些数据,并为每个属性提供并发队列,以使数据读/写线程安全。
我想知道的是,如果有一种方法可以在不使用Singletons或在AppDelegate中存储对我的用户数据的引用的情况下执行此操作。
答案 0 :(得分:-1)
NSUserDefaults听起来像你正在寻找的。根据{{3}}“NSUserDefaults类提供了一个用于与默认系统交互的编程接口。默认系统允许应用程序自定义其行为以匹配用户的首选项。”您可以以全局方式使用NSUserDefaults。
为此,您需要先创建一个NSUserDefaults对象:
NSUserDefaults *myAppDefaults = [NSUserDefaults myAppDefaults];
要将数据保存到默认系统,您可以执行与以下行类似的操作:
[standardDefaults setObject:@"Smith" forKey:@"lastName"];
最后,您可以通过将数据存储在变量中来从默认系统中检索数据。下面的行显示了如何将NSString设置为您最初存储的值:
NSString *lastName = [standardDefaults stringForKey:@"lastName"];