问题标签 [property-wrapper]
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.
swift - 如何在 SwiftUI 中使用带有协议的属性包装器
我希望我的 SwiftUI 视图符合某些 ViewProtocol,并且它必须具有符合协议 PresenterProtocol 的属性 Presenter。但我也希望视图中的 Presenter 属性被包装到例如 StatObject。但是我会收到一个错误“协议'PresenterProtocol'作为一种类型不能符合'ObservableObject'。如何解决这个问题,以便我的视图和演示者内部仍然符合协议并且能够使用属性包装器?提前致谢!
swift - 属性包装器与镜像
节日快乐!
我有一个属性包装器,用于定义键值对中的键。
编辑: 并使用以下协议,所有 KV 模型都应遵守...
属性包装器以下列方式使用:
因此,整个想法是生成一个类型的字典,该字典[String: Any]
使用 Mirror 保存该结构中的键值对。问题是以下代码不起作用(我知道原因,但我不知道解决方法):
所以,我在这里求助专家:如何使用镜像逻辑来获取 kv 对并将它们放入集合中?
我非常感谢您能提供的任何帮助。
ios - 如何在主线程中接收@Published var
我将模型作为已发布变量保存在 ViewModel 中,并从视图中观察它。
当模型进程进入后台线程时,如果您发布模型值,Xcode 线程检查器会做出反应。
不允许从后台线程发布更改;确保在模型更新上发布来自主线程的值(通过诸如接收(on :) 之类的运算符)。
已发行。
想知道在主线程中如何接收模型值,但是不太明白,问了一个问题。
如果你能告诉我,我会很高兴的。
ios - 在 NavigationLink 视图中使用 @FocusedState 变量可以使该视图立即返回到前一个视图
我将 SignUpView 分为两个较小的视图。他们两个都连接NavigationView
到第一个。NavigationLink
在第一个视图中导致第二个。我尝试使用 iOS 15@FocusedState
属性包装器对变量和.focused
修饰符使用一些文本字段。具有这些变量的所有操作在第一个视图中都可以正常工作,但是当我通过它转到第二个视图时,NavigationLink
它会立即返回到第一个视图,没有任何输入,就好像视图已被清除一样。这只发生在我.focused
在第二个视图中使用修饰符以及一些与具有@FocusedState
属性包装器的变量相关的操作时。
在第一个视图中@FocusedState variables
的用法:.focused modifier
在第二个视图中:
swiftui - 属性包装器不影响 TextField
我写了propertyWrapperMaxCount
来限制. 但是,虽然view 显示 trimmed ,但显示 full 。String
TextField
Text
String
TextField
String
我可以通过 below 实现预期的行为ViewModifier
,但这对我来说似乎不是一个好习惯,我想通过@propertyWrapper
.
MaxCount.swift
ContentView.swift
ios - @MainActor 与 propertyWrapper 一起使用时不安全吗?
合用又不安全@mainActor
?propertyWrapper
代码将直接在后台线程中执行。这是一个错误?
这是演示:
swift - SwiftUI 在视图层次结构中传递变量
我有一个关于我的 Swift / SwiftUI 应用程序架构的问题,该应用程序由一个 ListView、详细视图和包含 2 个输入视图的详细视图组成。具体来说,我想知道这是否是正确的方法。
架构如下:
列表视图启动视图模型控制器的@StateObjct。
视图模型控制器:
列表视图模型如下所示:
我通过以下方式将练习变量传递给详细视图:
详细视图接受练习变量作为绑定:
问题是,每次我尝试显示 ListView 时,程序都会冻结而没有警告或错误。我想我对绑定/属性包装器有误解。
谢谢你的帮助。
ios - 斯威夫特 PropertyWrapper。无法初始化变量
所以,我尝试创建一个属性包装器,从不需要的字符中去除电话号码并向其添加国家/地区代码:
现在,当我尝试创建这样的 var 时@MSISDN var msisdn: String = "69 (4615)-11-21"
,出现以下错误
如果我尝试像下面这样分两个步骤来做,一切正常。
任何人都可以帮我一个大忙并为我分解吗?
swift - @Binding 和 Binding 的区别在斯威夫特
我知道这@Binding
是一个属性包装器,我相信这Binding<Type>
是一种类型转换,但实际上有什么区别?
例如声明一个 var,如:
相对