combine相关内容
我有一个可以观察到的AppState: class AppState:ObservableObject {私人init(){}静态让共享= AppState()@Published fileprivate(set)var isLoggedIn = false} 视图模型应根据状态( isLoggedIn )决定显示哪个视图: class HostViewModel:Observable
..
SwiftUI当前不支持多行文本输入(希望很快会添加此功能!),所以我一直在尝试使用Combine框架从UIKit实现不支持多行输入的UITextView,但是我一直在结果不一. 这是我创建的用于创建“文本"视图的代码: struct MultilineTextView:UIViewRepresentable {@Binding var text:字符串func makeUIView(c
..
我有一个发布者,该发布者进行网络呼叫并返回ID数组.现在,我需要为每个ID拨打另一个网络电话,以获取我的所有数据.我希望最终的发布者拥有最终的对象. 第一个网络结果: “用户":{"id":0,“项目":[1、2、3、4、5]} 最终对象: struct用户{let id:整数租借物品:[物品]...其他领域...}结构项{let id:整数...其他领域...} 处理多个网络
..
我认为此错误消息是Xcode 12中SwiftUI的新增功能,因为它在Google中获得了0次匹配,而消息本身却是相当通用的: 在安装到View之外访问State的值.这将导致初始值的恒定绑定,并且不会更新. 我有以下代码(删除了一些绒毛): 公共结构ContentView:视图{@ObservedObject var模型:RootViewModel公共var主体:一些视图{VSta
..
每次尝试更改 textField 的值时,我都试图执行一个动作. @Published的var值:String =“"var body:some View {$ value.sink {(val)在打印(val)}返回TextField($ value)} 但是我遇到了错误. 无法将类型为“已发布"的值转换为预期的参数类型“绑定" 解决方案 这应该是一种非脆弱的方法: c
..
我有一些使用RxSwift构建的代码,并且正在尝试将其转换为使用Apple的Combine框架. 一种非常常见的模式是对单次可观察的对象(通常是网络请求)使用 Observable.create .像这样: func loadWidgets()->可观察{返回Observable.create {//当有人订阅时启动请求让loadTask = WidgetLoade
..
我正在尝试使用Swift Combine获得属性的更改事件. 我有发布 isLogged 属性 的此类 class CurrentUser:帐户{静态让我= CurrentUser()//单@Published var isLogged:布尔=假} 从另一个发布 profileImageVersion 属性 的类继承的 类帐户{@Published var profileIma
..
我收到上述错误,无法解决.我有一个包含布尔值的对象数组,并且需要显示每个布尔值的切换. 下面是代码. class项目:可识别的{var id:字符串var标签:字符串var isOn:布尔}服务:ObservableObject {var didChange = PassthroughSubject()var个项目:[Item] {didSet {didChan
..
所以我正在尝试学习SwiftUI和Combine.我通常通过制作一个简单的小费计算器来开始新技术. 我似乎得到了一个随机的“通话中的额外参数".编码时出错这是我的SwiftUI文件 导入SwiftUI内部枚举ReceiptRowType {案例小计个案税案件总数案例提示案例大合计}struct TipView:查看{@ObservedObject内部变量adBannerView:Banne
..
我正在尝试使用来自单独的后台线程的高频数据更新主视图.我创建了两个tabview,并且在更新速度较慢的情况下,可以更改视图.但是在另一种情况下,UI不响应.我只在真实设备上观察到了这种行为,在模拟器中一切正常. while循环仍然代表一个imu,只是为了使其简单. 有人知道如何解决此问题吗? 非常感谢! 导入SwiftUIstruct ContentView:查看{@Envir
..
我正在尝试复制WWDC 2019会议“实践结合"中给出的“向导学校注册"示例 https://forums.swift.org/t/crash-in-swiftui中-app-using-combine被使用在非常友好和乐于助人的 Nanu Jogi 上,它与swiftui/26628/9中的状态一起发布了.不在stackoverflow上. 这很简单: 添加此行: .receiv
..
我想知道是否有一种方法可以通过新的Apple框架实现重新连接机制结合并使用URLSession Publisher 试图在WWDC 2019中找到一些示例 试图与 waitsForConnectivity 一起玩没有运气(它甚至没有在自定义会话上调用委托) 尝试了 URLSession.background ,但在发布过程中崩溃了. 我也不了解我们如何以这种方式跟踪进度 有没有人
..
我正在对我的API请求使用Swift Combine.现在,我面临一种情况,我想将4个以上的并行请求压缩在一起.在我有4个使用Zip4()运算符压缩在一起的请求之前.我可以想象您要分多个步骤进行压缩,但是我不知道如何为它编写receiveValue. 这是我当前代码的简化,其中包含4个并行请求: Publishers.Zip4(request1,request2,request3,req
..
我使用OAuth框架来异步创建经过身份验证的请求,如下所示: OAuthSession.current.makeAuthenticatedRequest(request:myURLRequest){(结果:Result)切换结果{case .success(请求):URLSession.shared.dataTask(with:request){
..
在下面的代码中,当按下Button时,应该在控制台中打印"Test",但不是这样.该事件不是通过发布者发送的.知道Xcode 11 Beta 5中的PassthroughSubject发生了什么吗?(在Xcode 11 Beta 4中效果很好) 变量主体:某些视图{让发布者= PassthroughSubject()Publisher.sink {(str)在打印(
..
我们的应用程序支持iOS 11及更高版本.在iOS 13中,我们使用 SwiftUI + Combine 我们用相应的检查 #if canImport(SwiftUI)或 #if canImport(Combine)包装 SwiftUI 或 Combine 框架的导入).如果我们在iOS 12下从Xcode 11运行应用程序,则会出现错误 dyld:库未加载:/System/Library/
..
我正在尝试找出构建绑定到UserDefaults的简单设置屏幕的最佳方法. 基本上,我有一个Toggle,我想要: 每次更改此Toggle时都要保存的UserDefault值(UserDefault应该是事实的来源) 切换始终显示UserDefault的值 解决方案 更新 ------- iOS 14:------- 从iOS 14开始,现在有一种非常非常简单的方
..
我正在尝试执行异步请求时显示活动指示器.我所做的是创建一个ActivityTracker对象,该对象将跟踪发布者的生命周期.此ActivityTracker是一个ObservableObject,将存储在也是ObservableObject的视图模型中. 似乎这种设置并没有刷新View.这是我的代码: struct ContentView:查看{@ObservedObject var v
..
从Swift的属性包装器中,您可以有人引用拥有被包装的属性的类实例或被删除的实例吗?使用 self 显然不起作用, super 也不起作用. 我试图将 self 传递给属性包装器的 init(),但这也不起作用,因为上的 self 评估 @propertywrapper 时,尚未定义配置. 我的用例在用于管理大量设置或配置的类中.如果有任何属性更改,我只想通知感兴趣的人某些事情已更改.
..
我正在发现Combine.我编写了以“组合"方式发出HTTP请求的方法,例如: func testRawDataTaskPublisher(用于URL:URL)->AnyPublisher{var request = URLRequest(url:url,cachePolicy:.useProtocolCachePolicy,timeoutInterval:15)request.
..