问题标签 [observableobject]

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 回答
100 浏览

ios - 使用 Objective-C 中的 Swift ObservableObject 时出现链接器错误

我正在尝试使用来自 Objective-c 的 Swift 类(就像我对许多其他类所做的那样),但出现以下错误。

未定义符号:OBJC_CLASS $__TtC9FileCloud18BrowserCoordinator

问题似乎是这个特定的类符合 Swift 协议ObservableObject

它正确显示在生成的MyProject-Swift.h头文件中:

并且在从 Objective-C 中使用时可以正确构建:

但随后链接器失败。会不会是苹果的bug?

0 投票
1 回答
139 浏览

swift - SwiftUI 无法绑定类数组参数

在我的SwiftUI项目中,我有一个按钮class模型:

然后我有另一个class名称ControlPanel,它有一个 Button 数组作为参数。

UIViewControllerRepresentable我必须在我用一个类构建的自定义集合视图中收听这个数组:

最后,我在内容视图中调用此集合视图,方法如下:

当我加载我的内容视图时,我确实得到了所有单元格,但是一旦我更改它们,视图就不会更新。我该如何解决这个问题?

0 投票
0 回答
76 浏览

swift - ObservableObject如何观察Binding值(不是值类型)的变化

代码:

发生了什么:

appStore.settings.username += "a"无法触发视图的更新。但是对 TextField 的输入可以触发视图的更新。

问题:

我明白为什么appStore.settings.username += "a"不能触发视图的更新。ObservableObject 只能观察 value 的变化,但是 account 是 refrence 类型的。所以当我们更改 account 的属性时,appStore 中的值没有变化。但是不知道为什么会出现第二种情况

0 投票
1 回答
194 浏览

swift - 如何捕捉通过 SwiftUI 中的函数更改的值更改?

我的视图不检查该值是否已更改。你能告诉我为什么或者你能帮助我吗?

您可以在下面看到重要的代码。

我的课

在 SceneDelegate 中,我在 sceneDidbecom 的重要代码将值触发为 true,然后如果函数完成,那么我希望触发返回为 false

当值发生变化时,我的视图不会更新自我。

0 投票
2 回答
1830 浏览

swift - SwiftUI 符合 ObservableObject 的 Classes 应该是 Singleton 吗?

我在 SwiftUI 中被认为是新手,并且我有以下 ViewModel。但我不确定 MyViewModel 应该是单例的。这种用法对吗?什么是符合 ObservableObject 的最佳实践/用法?

0 投票
1 回答
271 浏览

view - SwiftUI - 从 ObservableObject 触发模态表?

我创建了一个随机数生成器,如果出现数字 3,它应该显示一个新工作表。

逻辑在一个单独的类中,但是当我在 ContentView 上使用它.sheet.fullScreenCover它不起作用。

是否可以从 Xcode12 / iOS 14 SwiftUI 中的 ObservableObject 触发模式表?

下面的最小可复制示例:

0 投票
2 回答
75 浏览

swiftui - ObservedObject 未触发视图重绘

我有一个需要从 api 获取数据的视图。我对 SwiftUI 的理解是,通过使用 onAppear,将调用 api,更新 viewmodel 属性,并更改 StateObject,这将触发 View 重绘。

问题是没有进行重绘。

我可以看到一个 api 调用发生,并在使用解码数据后添加调试,我可以看到返回了很多数据。

我删除了很多代码以使逻辑更易于理解(如下)。

用@ObservedObject 替换@StateObject 并从父级传递到视图中也没有区别。

谢谢

视图模型:

0 投票
1 回答
617 浏览

swift - 有没有办法通过在没有所有 didChange 管道的情况下连接到订阅者管道来检测 Swift ObservableObject 中的变化?

我正在使用各种视图模型对象创建一个 SwiftUI 应用程序来支持视图。在某些视图上,用户可以在不保存更改的情况下离开,例如“取消”,如果底层视图模型有任何更改,我想提示确认。一些视图模型具有许多可以设置/更改的属性,因此我试图避免必须更改每个 @Published 属性以具有didChange捕获更改的方法,因为这将是很多丑陋的管道,感觉没有必要。由于对象的订阅者可以检测到更改,我想知道是否有一种方法可以让我自己挂钩,以便我可以对对象的已发布更改做出反应,然后设置hasChanges标志。

非常感谢任何帮助/建议。

0 投票
0 回答
178 浏览

binding - 绑定突然在iOS14中不起作用

在 iOS 14 之前,我的项目使用以下代码运行良好

这是我的部分服务课程

然后是视图模型

在 iOS 13 中,此代码全部 100% 运行,没有任何问题,现在在 iOS14 设备上运行时,我在控制台中点击文本字段时得到以下输出

最近有没有人遇到过这个问题?

0 投票
1 回答
241 浏览

swift - SwiftUI ObservableObject 创建非数组@Published

我试图用非数组 @Published 项创建一个 ObservableObject。但是,我仍然不知道该怎么做。我尝试使用 ? 这样做。但是当我在视图中显示它时Text((details.info?.name)!),它返回Thread 1: Swift runtime failure: force unwrapped a nil value我不知道问题是什么以及如何解决。我创建可观察对象类的方法是否正确?

示例 JSON 数据