Questions tagged «combine»

7
如何在Dart中合并两个列表?
我想知道是否有一种简单的方法可以在dart中连接两个列表以创建一个全新的列表对象。我找不到任何东西,像这样: 我的列表: list1 = [1, 2, 3] list2 = [4, 5, 6] 我试过了: var newList = list1 + list2; 我想要以下的组合输出: [1, 2, 3, 4, 5, 6]

4
等同于在Swift Combine中使用@Published的计算属性?
在命令式Swift中,通常使用计算属性在不复制状态的情况下提供对数据的便捷访问。 假设我将此类用于命令式MVC: class ImperativeUserManager { private(set) var currentUser: User? { didSet { if oldValue != currentUser { NotificationCenter.default.post(name: NSNotification.Name("userStateDidChange"), object: nil) // Observers that receive this notification might then check either currentUser or userIsLoggedIn for the latest state } } } var userIsLoggedIn: Bool { currentUser != nil } // …

3
如何告诉SwiftUI视图绑定到嵌套的ObservableObjects
我有一个SwiftUI视图,其中包含一个名为的EnvironmentObject appModel。然后读取值appModel.submodel.count在其body方法中。我希望这会将我的观点绑定到该属性count上,submodel以便在属性更新时重新呈现该属性,但这似乎不会发生。 这是一个错误吗?如果不是,将视图绑定到SwiftUI中环境对象的嵌套属性的惯用方式是什么? 具体来说,我的模型看起来像这样... class Submodel: ObservableObject { @Published var count = 0 } class AppModel: ObservableObject { @Published var submodel: Submodel = Submodel() } 我的观点看起来像这样... struct ContentView: View { @EnvironmentObject var appModel: AppModel var body: some View { Text("Count: \(appModel.submodel.count)") .onTapGesture { self.appModel.submodel.count += 1 } } } 当我运行该应用并点击标签时, …
18 ios  swift  swiftui  combine 

2
SwiftUI中相关实体更改时,如何更新@FetchRequest?
在SwiftUI中,View我有一个List基于@FetchRequest显示Primary实体数据和关联Secondary实体的Via 关系的数据。在View其List被正确地更新,当我添加一个新的Primary实体,新的相关辅助实体。 问题是,当我Secondary在详细视图中更新连接的项目时,数据库得到更新,但是更改未反映在Primary列表中。显然,@FetchRequest不会被另一个视图中的更改触发。 此后,当我在主视图中添加新项目时,以前更改的项目最终得到更新。 解决方法是,我另外Primary在详细视图中更新实体的属性,并且更改正确传播到Primary视图。 我的问题是:如何@FetchRequests在SwiftUI核心数据中强制所有相关的更新?特别是当我无权直接访问相关实体时@Fetchrequests? import SwiftUI extension Primary: Identifiable {} // Primary View struct PrimaryListView: View { @Environment(\.managedObjectContext) var context @FetchRequest( entity: Primary.entity(), sortDescriptors: [NSSortDescriptor(key: "primaryName", ascending: true)] ) var fetchedResults: FetchedResults<Primary> var body: some View { List { ForEach(fetchedResults) { primary in NavigationLink(destination: SecondaryView(primary: primary)) { VStack(alignment: …

3
SwiftUI如何在View需要初始化器中的@Binding时实例化PreviewProvider
使用SwiftUI(Xcode 11.1),我已经通过2路绑定(使用@Binding)设置了一些视图。双向更新效果很好。 但是,如何从PreviewProvider实例化视图? 例如: struct AddProjectView: View { @Binding public var showModal: Bool var body: some View { return VStack { Text("Add Project View") Button("Dismiss") { self.showModal = false } } } } 我无法执行此操作,因为“ true”不是绑定: struct AddProjectView_Previews: PreviewProvider { static var previews: some View { AddProjectView(showModal: true) } } 我不能这样做,因为“ …
10 xcode  swiftui  combine 

1
如何在Swift的绑定中解开可选值?
我正在使用SwiftUI构建应用,并希望将a转换Binding<Value?>为Binding<Value>。 在我的应用程序中,我有一个AvatarView,它知道如何为特定用户渲染图像。 struct AvatarView: View { @Binding var userData: UserData ... } 我的应用程序拥有一个ContentView拥有两个绑定的:一个ID用户字典,以及我们应显示其头像的用户ID。 struct ContentView: View { @State var userById: Dictionary<Int, UserData> @State var activeUserId: Int var body: some View { AvatarView(userData: $userById[activeUserId]) } } 问题:上面的代码没有合并,因为$userById[activeUserId]它是类型的,Binding<UserData?>并且AvatarView包含一个Binding<UserData>。 我尝试过的事情 $userById[activeUserId]!不起作用,因为它正在尝试打开Binding<UserData?>。您只能解开一个Optional,而不能解开一个Binding<Optional>。 $(userById[activeUserId]!)由于我尚不了解的原因而无法正常工作,但是我认为有关$问题在编译时已解决,因此您似乎无法在任意表达式前添加前缀$。
9 ios  swift  swiftui  combine 
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.