问题标签 [userdefaults]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
69 浏览

swift - 保存数据的最佳方式

所以,这是我当前的问题:我只想保存大约 500 个不同的字符串。

那么我的问题是最好的方法是什么?

所有的字符串都应该在之后加载。这个想法是,一个标签将能够根据用户之前的输入呈现所有这些字符串。

我真的需要调用一个函数 500 次或编写 500 个 if 语句吗?此外,我是否需要将这些数据保存 500 次不同的时间,如果需要,最好使用哪种方法?

0 投票
1 回答
457 浏览

swift - 如何使用“UserDefaults.standard.set()”将信息从一个控制器传递到另一个控制器

我正在尝试将信息从一个控制器传递到另一个控制器。我有两个控制器 1.ViewController 2.SecondController。我想使用 UserDefaults.standard.set 将信息从 ViewController 传递到 SecondController,我试图在其中获取 viewController 的引用,但我遇到错误说“为键值“控制器”分配非属性列表对象。下面是代码。请帮我

0 投票
3 回答
858 浏览

swift - How to safely unwrap a value from user defaults?

if i do this swift shows me an issue:

Conditional cast from 'Bool' to 'Bool' always succeeds, Non-optional expression of type 'Bool' used in a check for optionals.

Since there might not be a value for my key, I don't want to force unwrap it. Now obviously it's working like this, but how do I safely unwrap the value without having swift complaining?

I have tried to use guard as well...

0 投票
2 回答
560 浏览

ios - 为什么 UserDefaults.standard.set 不保存我的数组?应用程序从后台删除后,数据将被清除

我目前正在使用 Swift 编写的应用程序中处理日历。尽管它可以正常工作,因为可以输入数据(事件日志)并将其添加到将显示在表格视图中的数组中,但一旦关闭应用程序并从后台删除,当我重新打开它时,事件日志消失了。

我的代码有没有错误?

如果有必要,这里是允许在数组中输入数据的代码:

我已经尝试使用模拟器和真正的 iOS 设备以及重新安装 Xcode,因为我读过它可能是 Xcode 本身的问题。我也尝试在所有地方添加 UserDefaults.standard.synchronize() ,但是,似乎没有任何效果。

0 投票
3 回答
907 浏览

ios - 将数组数组保存为用户默认值

我可以使用以下方法将单个数组保存到用户默认值:

但它不会让我保存数组数组,我正在尝试这个:

它会导致在数组“[[]]”中加载一个空数组,并且不会将数组列表保存在数组中。

0 投票
1 回答
815 浏览

ios - UserDefaults 保存字典数组

我正在尝试将字典保存到 UserDefaults 然后我想获取数据或删除。

代码在 swift 3 上工作,但我在 swift 4 上出现错误var dictionary:[String:Any]

这是错误:

隐式 Objective-C 入口点 -[Myapp.UserModel name] 已弃用,将在 Swift 4 中删除

请任何帮助解决这个问题将不胜感激。

0 投票
1 回答
227 浏览

ios - 什么被认为对 UserDefaults 来说太重了?

我正在构建一个简单的 iOS 应用程序,这将是我将在 Apple 的 App Store 上发布的第一个应用程序。在某一时刻,该应用程序会访问用户的联系人列表,并让他们选择他们想要保存为收藏夹的任意数量的联系人。

为了便于构建版本一,我目前正在使用 UserDefaults 来保存这些收藏夹。虽然它在我有限的测试中运行良好,但我知道 Core Data 和 CloudKit 是大型解决方案的稳定选择。

对于像我这样的应用程序,我只使用 UserDefaults 将选定数量的联系人保存为收藏夹,UserDefaults 是一个足够的解决方案吗?或者我应该过渡到更强大的东西,比如 Core Data 或 CloudKit?用户可以选择作为收藏夹的联系人数量没有限制,因此用户可能会一一选择所有联系人并尝试将它们全部保存为收藏夹。

如果用户得到一部新手机并且由于 UserDefaults 在设备上是本地的而丢失了所有现有数据,那么很快就可以将此应用程序恢复到他们以前拥有它的位置。

0 投票
1 回答
274 浏览

ios - 在 UserDefaults 上使用 NSKeyedArchiver 时属性重置

我有一组SKSpriteNode要坚持的对象UserDefaults。在下面的代码中(或参见 GitHub 上的演示项目),我使用NSKeyedUnarchiver将数组编码为数据,然后再将其设置为默认值。但是当我取消归档数据时,engineSize对象的属性被重置为默认值 0。

汽车.swift

GameScene.swift

这个答案让我尝试在Car类上实现编码器/解码器方法:

Car.swift(更新)

但是,这似乎不起作用。GameScene仍在打印engineSize为 0。我执行编码器/解码器是否错误?engineSize当属性从默认值恢复时,我可以做些什么来防止属性重置为 0?

更新

这是我更新的Car课程,因为我试图让它与 rmaddy 的建议一起使用:

代码编译并运行,但engineSize在保存为默认值时该属性仍被重置为 0。

0 投票
1 回答
587 浏览

ios - 是否可以使用 settings.bundle 在应用程序内显示首选项?

是否可以使用在应用程序内显示首选项Settings.bundle?如果没有,是否有与 Settings.bundle 类似的方法在应用程序内显示首选项?

我想使用 Settings.bundle 的原因是因为它使用了一个简单的 .plist 文件和少量UserDefaults代码,这使得创建用户首选项成为可能。

目前,我在我的自定义包装类中有大量代码的内部应用程序偏好UserDefaults- 我宁愿重构它。

0 投票
1 回答
157 浏览

ios - 如何在 Xcode 中终止并重新打开应用程序后检查 UserDefaults (swift)

我归档了一个采用 Codable 的对象,并实现了在应用程序进入后台时存储对象数据,在应用程序重新打开时加载它们。

但它不起作用。

终止并重新打开模拟器后如何检查 UserDefaults 的更改?

我制作了可编码的“机器”类,并实现了归档机器对象的“机器商店”类。

保存数据:

加载数据中:

我在 AppDelegate 中使用了 MachineStore。