combine相关内容
我正在尝试保存用户的签入时间首选项(向他们发送通知提醒)。到目前为止,我已经能够将Bool和字符串保存到UserDefaults,但我不知道如何节省时间首选项。这是我用于存储首选项的UserSetting类。 public class UserSettings: ObservableObject { @Published var eveningCheckin: B
..
我刚开始使用Combine and Sink,但是我放进去的照片似乎没有记录,但是当用户在AWS Amplify中创建时,操作结果就会完成。 @objc private func createAccountButtonAction(sender: UIButton) { print("Create Account Button Action") signUp(password
..
我正在尝试在项目播放结束时暂停AVPlayer。使用SwiftUI实现这一点的最佳方式是什么?我不太了解通知,在哪里声明它们,等等。有什么方法可以使用联合来实现这一点吗?样例代码将会非常棒!提前谢谢您。 更新: 在下面答案的帮助下,我成功地创建了一个类,它接受AVPlayer并在项目结束时发布通知。您可以通过以下方式订阅通知: 类: import Combine impor
..
考虑以下代码: CurrentValueSubject(()) .eraseToAnyPublisher() .sink { completion in switch completion { case .failure(let erro
..
我正在创建一个联系人类来异步获取用户的电话号码. 我创建了 3 个函数来利用新的 Combine 框架的 Future. func checkContactsAccess() ->未来{未来 { 解决让authorizationStatus = CNContactStore.authorizationStatus(for: .contacts)切换授权状态{授权案例:返回解决
..
我正在使用 onChange 修饰符观察视图上的属性.但是,我也希望在初始值上运行同一段代码,因为有时数据会被注入初始化程序或稍后异步加载. 例如,我有一个注入模型的视图.有时,此模型开始时包含数据(如预览),或者从网络异步检索. class MyModel: ObservableObject {@Published var 计数器 = 0}结构内容视图:查看{@ObservedObjec
..
我发现了这个问题 SwiftUI:将多个 BindableObjects 放入环境 答案说 environmentObject(ObservableObject) 返回修改后的视图,因此我可以为多个 environmentObject 创建调用链. 喜欢 let rootView = ContentView().environmentObject(firstBindable).env
..
说明: 我有一个具有以下层次结构的模型: 食谱 ...steps(一个数组) ...currentStep ......参数(数组) ........最低 .......最大 .........默认 ........当前 该模型运行良好.我可以添加步骤、参数,并将当前步骤设置为一个名为 recipe 的 @EnvironmentObject. 我在这里创建了一
..
我在 SwiftUI 和 Combine 中的内存管理方面遇到了一些问题. 例如,如果我有一个 NavigationView,然后使用 TextField 导航到详细视图,并在 TextField 中输入一个值并点击后退按钮,则下次我转到该视图时,TextField 具有先前输入的值. 我注意到在细节视图被关闭后视图模型仍然在内存中,这可能就是 TextField 仍然保留一个值的原因
..
我创建了一个自定义文本字段,我想利用结合.为了在文本字段中的文本更改时收到通知,我目前使用自定义修饰符.它运行良好,但我希望这段代码可以在我的 CustomTextField 结构中. 我的 CustomTextField 结构符合 UIViewRepresentable.在这个结构体中,有一个名为 Coordinator 的 NSObject 类,它符合 UITextFieldDelega
..
当按照当前的 SwiftUI 语法使用 @Published 属性包装器时,似乎很难定义一个包含带有 @Published 的属性的协议,或者我肯定需要帮助 :) 当我在 View 和它的 ViewModel 之间实现依赖注入时,我需要定义一个 ViewModelProtocol 以便注入模拟数据以轻松预览. 这是我第一次尝试的, protocol PersonViewModelPr
..
我正在使用 SwiftUI 构建应用程序,并且想要一种将 Binding 转换为 Binding> 的方法. 在我的应用程序中,我有一个 AvatarView,它知道如何为特定用户呈现图像. struct AvatarView: View {@Binding var userData: UserData...} 我的应用程序拥有一个 ContentView,它拥有两个绑定:一个按 id
..
所以我正在尝试学习 SwiftUI 和 Combine.我通常通过制作一个简单的小费计算器来开始新技术. 我似乎收到了一个随机的“通话中的额外参数".编码时出错这是我的 SwiftUI 文件 导入 SwiftUI内部枚举 ReceiptRowType {个案小计案例税案件总数案例提示案例总计}struct TipView:查看{@ObservedObject 内部 var adBanner
..
我正在尝试制作一个 ObservableObject,它具有包装 UserDefaults 变量的属性. 为了符合ObservableObject,我需要用@Published 包裹属性.不幸的是,我无法将其应用于计算属性,因为我用于 UserDefaults 值. 我怎样才能让它工作?我该怎么做才能实现 @Published 行为? 解决方案 更新:有了EnclosureSe
..
基本上我试图弄清楚我的 viewModel 何时更新,它会通知视图并刷新整个身体.如何避免这种情况.例如,如果我的视图 GoLiveView 已经呈现了另一个视图 BroadcasterView,然后我的 goLiveViewModel 得到更新,GoLiveView 将被刷新,它会再次创建 BroadcasterView,因为 showBroadcasterView = true.正因为如此,它
..
尝试发出网络请求时,出现错误 finished with error [-999] Error Domain=NSURLErrorDomain Code=-999 "cancelled" 如果我使用 URLSession.shared.dataTask 而不是 URLSession.shared.dataTaskPublisher 它将在 IOS 13.3 上工作. 这是我的代码: r
..
我正在将我的项目从 RxSwift 迁移到 Combine我有一个逻辑,我希望发布者每次单击按钮时都发出事件.实际点击按钮执行pushMe.send() pushMe.print(“调试").flatMap { (res) ->AnyPublisher在return Future.init {closure in关闭(.failure(Errors.validationFail))}.erase
..
在 SwiftUI View 我有一个基于 @FetchRequest 的 List 显示 Primary 实体的数据和通过关系连接 Secondary 实体.View 及其 List 正确更新,当我添加一个新的 Primary 实体和一个新的相关次要实体时. 问题是,当我在详细视图中更新连接的 Secondary 项时,数据库会更新,但更改未反映在 Primary 列表中.显然,@Fetc
..
我有一个 SwiftUI 视图,它接收一个名为 appModel 的 EnvironmentObject.然后它在其 body 方法中读取值 appModel.submodel.count.我希望这将我的视图绑定到 submodel 上的属性 count 以便它在属性更新时重新呈现,但这似乎不会发生. 这是一个错误吗?如果没有,在 SwiftUI 中将视图绑定到环境对象的嵌套属性的惯用方法是
..
我已经尝试过 ObservableObject 文档中的示例.> class 联系方式:ObservableObject {@Published var 名称:String = "me"@Published var 年龄:Int = 7} 当我用代码创建一个 Swift Playground 时: let c = Contact()c.objectWillChange.sink { 打印(“
..