草庐IT

Secure-NSUserDefaults

全部标签

ios - 当我的应用程序在 iOS 上终止时,保存 NSUserDefaults 的正确方法是什么

当我的应用程序在iOS中完全退出时,我需要保存我的NSUserDefault。不是didenterbackground和foreground。仅当用户在iOS中使用减号(-)终止我的应用程序时。所以我在AppDelegate的applicationWillTerminate中编写了以下代码。-(void)applicationWillTerminate:(UIApplication*)application{[[NSUserDefaultsstandardUserDefaults]setBool:NOforKey:@"iCloud"];[[NSUserDefaultsstandardU

ios - 读取 NSUserDefaults 与变量的速度

我有一个应用程序,它经常调用变量。这些变量存储在NSUserDefaults中。我想知道NSUserDefaults存储在哪里?如果我直接调用NSUserDefaults而不是使用变量。哪个更快?变量或NSUserDefaults。因为使用变量来存储NSUserDefaults会是占用更多内存的原因。 最佳答案 NSUserDefaults将其数据保存在磁盘上,因此在某些时候它必须从磁盘加载该数据以便将其存储在内存中。当您告诉它同步时,它需要将它写回磁盘。一旦进入内存,它会将其存储在类似字典的容器中(可能是NSMutableDict

iphone - 从设备获取 NSUserDefaults plist 文件

在模拟器上测试我的应用程序时,我喜欢从iPhone模拟器文件夹中编辑甚至删除应用程序plist文件(其中包含NSUserDefaults)的功能。这在测试时被证明是有用的(例如,您的应用程序在其中存储了一个字典,但是您更改了用于此数据的模型/key,因此需要删除存储的字典)。是否可以在不越狱的情况下访问设备上的这个文件(用于您自己的应用程序)?提前致谢 最佳答案 文件在Library/Preferences.该文件是一个名为.plist的二进制plist(在您的应用目标设置中查找标识符字段),或列出目录内容:NSString*pat

ios - NSUserDefaults 多久同步一次?

NSUserDefaults的文档说synchronise方法会被定期调用,但没有提及频率。10分钟的Google搜索没有显示任何内容。synchronise方法调用的频率是多少? 最佳答案 这是一个未公开的实现细节(可能甚至不是一个固定的时间间隔)。但是,您可以通过在-[NSUserDefaultssynchronize]上执行方法调配并更改其实现以便每次同步时调用NSLog()来自己找到它。 关于ios-NSUserDefaults多久同步一次?,我们在StackOverflow上找

ios - 从设备中删除应用程序不会清除 NSUserDefaults

我在NSUserDefaults中存储了一个值,我用它来检查应用程序是否是第一次启动。我在我的AppDelegate中检查了这个值,它在大多数情况下工作正常。但是,我希望如果我从设备中删除该应用程序,该值将被清除,以便在重新安装后首次启动时,它的行为就像从未在该设备上安装过一样。但是,存储在NSUserDefaults中的值仍然存在。现在我知道如何以编程方式清除NSUserDefaults但我将如何做到这一点并且仍然能够判断它是否是第一次启动该应用程序(并且在被删除后首次启动被检测为首次启动)?编辑:这个问题是针对实际的物理设备(不是模拟器)。从模拟器中删除应用程序DID正确清除NSU

ios - 保持多个用户偏好的最佳方法(NSUserDefaults、XML 文件或数据库)

我正在创建一个iOS应用程序,可以管理用户并让他们登录。我想保留每个用户的用户数据设置,但我不确定每个用户保存此设置的最佳方法是什么。我应该将数据保存到xml文件中,还是NSUserDefaults,甚至将它们保存到我的Parse云数据库中?我只想在加载View时保存用户属性列表,但我必须考虑到我的应用必须为当前用户加载正确的参数。例如:用户:彼得trackingSwitchEnabled:是用户:莫莉trackingSwitchEnabled:否用户:保罗trackingSwitchEnabled:是 最佳答案 除非您要存储敏感信

ios - 如何清除 Objective-C 中的所有 NSUserDefaults 值?

这个问题在这里已经有了答案:ClearingNSUserDefaults(15个答案)关闭7年前。我在我的应用程序中经常使用NSUserDefaults来存储一些值,但是在“刷新按钮”上我想清除所有存储的值,有什么方法可以清除所有NSUserDefaults值吗?

ios - NSUserDefaults 可以保存带有自定义对象的 NSArray 吗?

标题几乎解释了它。我是否需要先序列化对象,或者是否可以? 最佳答案 您必须使用NSData对对象(位于数组中)中的对象进行编码/解码并将数组存档到NSData。只需添加到你的对象的类(在你的数组中)并遵循你的编译器的警告:D然后像这样归档你的数组:NSData*data=[NSKeyedArchiverarchivedDataWithRootObject:yourArray];NSUserDefaults*defaults=[NSUserDefaultsstandardUserDefaults];[defaultssetObject

ios - NSUserDefaults 被重置

我有一个iOS应用程序,最近收到了一些用户关于他们的设置被重置的报告。使用NSUserDefaults保存设置。我的问题是,用户默认值会因为某种原因损坏/重置吗?关于我如何使用它的一些注意事项:当我启动我的应用程序时,只有当key不存在时,我才会使用registerDefaults存储默认值(这样做是为了处理“首次安装”场景)。大多数上述报告都描述了应用程序崩溃,然后在重新打开时将设置重置为默认值。我对NSUserDefaults的使用非常简单-保存numbers/strings,有时读取它们,等等。没什么特别的。我不会删除key。一些代码示例:例如,我使用以下方法将数据保存在不同的位

ios - 检测首次在 iOS 中安装 NOT NSUserDefaults

工作原理-该应用是跨平台服务的订阅。在iphone上,首次购买将为您提供30天的完整功能,然后30天后您将无法执行某些操作,直到您通过应用内购买购买订阅。我需要什么-我需要知道这是否是第一次运行,以便我可以将用户信息添加到数据库中。或者因为它是跨平台的,他们可能已经支付了订阅费用,所以我需要为用户现有的订阅增加30天。我现在在做什么-目前我将identifierForVendor存储在远程数据库中,在NSUserDefaults中有一个bool值检查以查看1.如果它是第一次运行和2.如果它是第一次运行允许用户将自己添加到数据库中以进行30天的完整使用,或将30天添加到他们现有的订阅中。