您是不是能够跨不同的视图控制器/.swift 文件检索存储在 UserDefaults 中的数据?
Posted
技术标签:
【中文标题】您是不是能够跨不同的视图控制器/.swift 文件检索存储在 UserDefaults 中的数据?【英文标题】:Are you able to retrieve data stored in UserDefaults across different View Controllers/.swift files?您是否能够跨不同的视图控制器/.swift 文件检索存储在 UserDefaults 中的数据? 【发布时间】:2020-02-16 23:39:06 【问题描述】:我创建了一个字符串值并将其存储在一个视图控制器上的 UserDefault 中,如下所示:
letSwimmerOneName = "John"
UserDefaults.standard.set(String(swimmerOneName), forKey: "twoFreelayNameOne
我正在尝试在不同的视图控制器上检索该数据,如下所示:
var swimmerOneName = UserDefaults.standard.string(forKey: "twoFreelayNameOne")
我没有收到任何错误或崩溃,只是根本不起作用。所以我想知道 UserDefaults 是在整个项目中传输还是留在创建它们的视图控制器中。
【问题讨论】:
它确实适用于整个项目。是什么让你说“它根本行不通”? 我有一个变量来存储输入到文本字段中的字符串。然后,我将该变量全部存储在一个视图控制器上的 UserDefault 中。在第二个视图控制器上,我检索该 UserDefault 值并尝试将其设置为标签的文本。不幸的是,标签没有显示我尝试存储在 UserDefault 中的那个字符串。我试图在标签上显示字符串的方式很可能是问题吗? 你可以测试一下。在设置成UserDefaults
、print(String(swimmerOneName))
之前和检索之后使用print(swimmerOneName)
。结果如何?
我试过了,没有任何东西打印到控制台。我什至尝试过:打印(“这有效吗?”)。这也没有出现在控制台中......
那作为另一个问题问吧。 不要只编辑这个问题。
【参考方案1】:
您可以跨不同的视图控制器检索存储在 UserDefaults 中的数据。我的问题是在我放置 UserDefaults 的位置以及我声明要分配此 UserDefault 值的变量的方式上创建的。 TLDR:格式草率。
【讨论】:
以上是关于您是不是能够跨不同的视图控制器/.swift 文件检索存储在 UserDefaults 中的数据?的主要内容,如果未能解决你的问题,请参考以下文章
在 Swift 中单击以编程方式切换到 TableViewCell 上的导航视图