问题标签 [appstorage]
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.
swift - 使用@AppStorage 进行用户登录流程?
问题 = 在 log_Status = true 后视图没有改变
在用户登录后,我试图将用户带到不同的视图。我已经在我的项目中实现了 Sign in with Apple 和 Sign in with Google。对于这个问题,我将展示使用 Google 代码登录。
已设置到相应的文件中。
用户单击使用 google 登录按钮并登录后,如下所示:
// 处理登录...
最后,创建了一个 If 语句,以便使用 var log_Status 将用户带到不同的视图。
如果有人知道为什么视图没有改变,或者我以错误的方式实现@AppStorage,请告诉我。
如果需要更多信息,请随时询问。任何帮助表示赞赏!
swift - SwiftUI 如何访问@AppStorage 变量
我对 Swift 和 iOS 应用程序真的很陌生,无法弄清楚以下内容。
我正在尝试创建一个简单的 5 步评级元素,将值存储到用户默认值。但它不能“即时”工作,这意味着用户无法立即看到更改,只能在重新启动应用程序时看到。通过不同的不透明度表示的评级。
所以,问题是: 点击时不会立即显示更改,而是在重新启动应用程序后才会显示更改。
我阅读了有关@AppStorage 的文章,但无法弄清楚。
我是否必须在循环内的某个地方再次访问@AppStorage?据我了解,它会自动更新和传播吗?
感谢您的任何提示!
编辑:
使用 an@State
而不是@AppStorage
var
按预期工作。
ios - 切换到新 iPhone 时是否会删除 UserDefaults?
当我从 iPhone 切换到新 iPhone 并选择将所有数据从旧 iPhone 转移到新 iPhone 时,这是否也会转移我的应用程序存储的所有用户默认值?
swift - 如何使用 @Binding 为 @AppStorage 变量初始化一个类
// 我正在尝试使用@Binding 将@AppStorage 的值传递给类。// @AppStorge 的声明,这是唯一的事实来源。// 我在 SigninViewModel = Class 'SigninViewModel' has no initializers 上收到以下错误
// 这个带有@Binding 的类正在被声明,并且我试图在其中访问@AppStorae 值。
arrays - Swift/SwiftUI – 将数组传递给另一个视图
我有一个关于 Swift 的问题,我无法理解。我有一个很简单的看法。这是一个列表,您可以在其中写下每个玩家的姓名,一旦您点击返回,名称就会通过onCommit
附加到数组playerArray
中。到目前为止,这工作正常。
现在我想将此数组中的名称传递给另一个视图。我怎么做?我是否使用@EnvironmentObject
,是否将其保存到@AppStorage
或者我需要使用/保存到Core Data
然后在我需要的视图中获取数据?
在下一个视图中,我想先显示玩家 1 的姓名,然后在他完成游戏后显示玩家 2 的姓名,当他完成游戏后,再显示玩家 3 的姓名,依此类推。当每个人都玩游戏时,我需要所有的名字再次用于记分牌。在写下来的时候,我想我还需要一种方法来将每个玩家的得分与名字绑定。
稍后我还希望有两支球队,每支球队有两名或更多球员。那里的顺序是A队,玩家1;B队,球员1;A队,选手2;B队,玩家2等等。
任何关于如何使这成为可能的提示都会很棒。如果我需要使用 Core Data 来正确执行此操作,那么我将深入研究 Core Data。
谢谢!
swift - 是什么导致 Swift UserDefault 直到第二次尝试才设置?
我试图让用户控制相机硬件的设置,因此有一个设置视图和一个不同的视图,他们可以通过单击按钮选择要应用的预设。当导航回设置视图(通过 TabView)时,我希望根据单击的预设按钮显示值。但是,我发现除非单击两次按钮,否则某些UserDefault 存储的值不会被更改。
正确更新的 UserDefaults 和非工作的用户默认值之间的差异:
- 在 TextField 的设置视图中显示(并且能够更改)非工作(直到第二次点击)值,而正确工作的值被显示(并且能够要更改)由滑块。
- 非工作值默认为 Ints 并更新为 Ints,而其他值为 Floats。
我尝试过的事情:
UserDefaults.standard.setValue(values[0], forKey: "exposureISO")
UserDefaults.standard.set(Int(values[0], forKey: "exposureISO")
UserDefaults.standard.synchronize()
这是我的代码,希望能证明问题可能出在哪里:\
如果按钮被点击两次,我发现 UserDefaults 被正确设置是最奇怪的。我感谢诊断问题以及如何解决问题的任何帮助!
编辑
就像评论中描述的和 ChrisR 建议的那样,我改为.onReceive
破解.onSubmit
/解决问题,但我还不完全理解为什么在Just(...)
点击按钮时发布者会发出。这是修复:\