问题标签 [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.

0 投票
0 回答
42 浏览

swift - 扩展 AppStorage 以兼容 Int32

我想使用 AppStorage 属性包装器将 CLAuthorizationStatus 存储在用户默认值中,这样我就可以在整个应用程序中将它作为一个简单的变量进行访问,而不是每次都通过 CLLocationManager 访问授权状态。问题是这个 Enum rawValue 类型是一个 Int32(而不是像 UNAuthorizationStatus 那样的 Int),所以下面的方法不起作用:

抛出:候选人要求类型“CLAuthorizationStatus.RawValue”(又名“Int32”)和“Int”是等效的(要求指定为“Value.RawValue”==“Int”)(SwiftUI.AppStorage)

我尝试扩展 AppStorage 以包含一个带有 RawRepresentable 的初始化程序,该初始化程序具有 Int32 作为 rawValue 但我找不到要包含在其中的内容以使其工作。

提前致谢。

0 投票
0 回答
340 浏览

arrays - 使用 AppStorage 在 SwiftUI 中持久存储字符串数组

我正在尝试使用 AppStorage 属性包装器将字符串数组存储在用户默认值中,如下所示:

但是我得到了错误No exact matches in call to initializer

这是 AppStorage 的限制,因为如果我没记错的话,UserDefaults 可以存储数组吗?我可以使用什么解决方法?

0 投票
1 回答
309 浏览

swift - SwiftUI @AppStorage 不在函数中刷新

我试图在每个 .onAppear 中重新加载数据,但是如果我在 SettingsView 中更改 @AppStorage nearMeter 的值,它不会更新 reloadNearStops 函数中的值并使用之前的 @AppStorage 值。

0 投票
1 回答
79 浏览

swiftui - SwiftUI 无法将字符串从 Appstorage 转换为 Int。此外,在更新第二个视图时,它会在每次击键后创建一个新视图

SwiftUI 的新手。

我想在 UserSettings 视图中更改字符串 calBudget 并在 ContentView 中将其转换为 Int。第一个问题是整数转换不适用于我的代码。第二个问题是,UserSettings 视图中的每次击键都会生成一个新的 UserSettings 视图,从而创建一堆嵌套视图。

0 投票
1 回答
83 浏览

swiftui - 在 SwiftUI 中使用 UserDefaults 进行全局更新

我一直在使用 @AppStorage 和 UserDefaults 在 SwiftUI 中进行更新。如果我对具有 @AppStorage 包装器的 vie 进行更改,则一切正常。我对如何在全球范围内进行这项工作感到困惑。

我正在使用具有关联的计算属性和格式化程序的结构。这个想法是检查用户默认值并将项目转换为磅或公斤。问题是使用计算属性的视图在更新 UserDefaults 时不会更新。有没有办法创建一个全局更改来更新下面 SecondaryView 中的 weightFormatted?

// 权重结构

// 格式化方法

// 设置 weightInKilograms 的位置

// 辅助视图未更新

0 投票
2 回答
147 浏览

ios - SwiftUI - AppStorage 不适用于 GeometryReader

这是一个简单的例子。您可以创建新的 SwiftUI iOS 项目并将其复制到 ContentView 文件。

我有3个元素:

  1. 黄色背景的文本 - 我需要它是全角的,我使用 GeometryReader 来完成它。
  2. 文本。最后一句话应该根据切换值打开/关闭。这仅用于测试目的,以检查 AppStorage 是否正常工作。
  3. Toggle - 切换 onOff 变量并将其保存到 AppStorage (UserDefaults)。

AppStorage 只有在没有 GeometryReader 的情况下才能完美运行。请注释掉 3 个标记的行以查看它。

它是一个错误吗?还是我的 AppStorage 代码有问题?或者 GeometryReader 部分是错误的?如果我可以将黄色部分设置为全角,我可以完全放弃 GeometryReader。

0 投票
1 回答
143 浏览

swift - SwiftUI - @AppStorage 变量键值

我试图从 UserDefaults 中获取一个 Bool,其键取决于产品的 nameID。

我试过这样:

无论如何,Swift 会抛出这个错误:

不能在属性初始化器中使用实例成员“产品”;属性初始化程序在“自我”可用之前运行

我理解为什么 Swift 会抛出这个错误,但我不知道如何解决它。有解决办法吗?

非常感谢你,阿尔贝托

0 投票
1 回答
89 浏览

swift - 如何在 ViewModel 中使用带有自定义类型和 @Published 的 @AppStorage?

如何在我的 ViewModel 中使用 @AppStorage 来保存一组自定义类型?如何将@AppStorage 与@Published 属性一起使用?

这是我的示例代码:

模型

查看模型

看法

用户界面: 用户界面

TODO: 在 AppStorage / UserDefauls 中存储列表“一些其他设置”的检查设置。

0 投票
2 回答
196 浏览

swiftui - 使用非零值初始化可选的 @AppStorage 属性

我需要一个可选的@AppStorage字符串属性(用于NavigationLink选择,需要可选),所以我声明

我需要它以非零的默认值开始,所以我尝试了:

但这不会编译。

我也试过:

但这只会在应用程序启动时覆盖实际的持久值。

有没有办法用默认的非零值启动它,然后让它像往常一样持续存在?

0 投票
1 回答
62 浏览

ios - SwiftUI 中的核心数据 - 如何使用 @AppStorage 作为谓词中的值?

如何将 @AppStorage 变量添加到 init() 以将其用作 @FetchRequest 谓词中的键?

这是一个工作示例,我使用带有固定关键字“A”的谓词过滤结果。

内容视图.swift

持久性.swift

我有一个实体:项目。使用“名称” - 字符串类型属性。当谓词是固定的“A”关键字时,一切正常。但是当我尝试使用过滤器变量(来自@AppStorage)时,我得到了错误:

在初始化之前使用的变量“self.items”

当我使用这个时:

而不是这个: