问题标签 [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.

0 投票
0 回答
61 浏览

swift - 如何在 SwiftUI 中使用带有协议的属性包装器

我希望我的 SwiftUI 视图符合某些 ViewProtocol,并且它必须具有符合协议 PresenterProtocol 的属性 Presenter。但我也希望视图中的 Presenter 属性被包装到例如 StatObject。但是我会收到一个错误“协议'PresenterProtocol'作为一种类型不能符合'ObservableObject'。如何解决这个问题,以便我的视图和演示者内部仍然符合协议并且能够使用属性包装器?提前致谢!

0 投票
0 回答
47 浏览

swift - 函数参数和初始化器的 Swift 属性包装器

我尝试在类型初始化程序中定义的参数上使用新的@propertyWrappers,如下面的代码:

但是 Xcode 不编译这样的代码并抛出这样的错误

闭包在声明之前捕获“_services”

初始化对象后在函数上使用相同的属性包装器效果很好

此外,如果我在初始化程序主体代码中评论参数的使用情况,则可以编译

但我想在正文中使用初始化参数来初始化一些属性

甚至可能吗?

在此处输入图像描述

0 投票
1 回答
37 浏览

swift - 属性包装器与镜像

节日快乐!

我有一个属性包装器,用于定义键值对中的键。

编辑: 并使用以下协议,所有 KV 模型都应遵守...

属性包装器以下列方式使用:

因此,整个想法是生成一个类型的字典,该字典[String: Any]使用 Mirror 保存该结构中的键值对。问题是以下代码不起作用(我知道原因,但我不知道解决方法):

所以,我在这里求助专家:如何使用镜像逻辑来获取 kv 对并将它们放入集合中?

我非常感谢您能提供的任何帮助。

0 投票
0 回答
72 浏览

ios - 如何在主线程中接收@Published var

我将模型作为已发布变量保存在 ViewModel 中,并从视图中观察它。

当模型进程进入后台线程时,如果您发布模型值,Xcode 线程检查器会做出反应。

不允许从后台线程发布更改;确保在模型更新上发布来自主线程的值(通过诸如接收(on :) 之类的运算符)。

已发行。

想知道在主线程中如何接收模型值,但是不太明白,问了一个问题。

如果你能告诉我,我会很高兴的。

0 投票
0 回答
26 浏览

ios - 在 NavigationLink 视图中使用 @FocusedState 变量可以使该视图立即返回到前一个视图

我将 SignUpView 分为两个较小的视图。他们两个都连接NavigationView到第一个。NavigationLink在第一个视图中导致第二个。我尝试使用 iOS 15@FocusedState属性包装器对变量和.focused修饰符使用一些文本字段。具有这些变量的所有操作在第一个视图中都可以正常工作,但是当我通过它转到第二个视图时,NavigationLink它会立即返回到第一个视图,没有任何输入,就好像视图已被清除一样。这只发生在我.focused在第二个视图中使用修饰符以及一些与具有@FocusedState属性包装器的变量相关的操作时。

在第一个视图中@FocusedState variables的用法:.focused modifier

在第二个视图中:

0 投票
1 回答
32 浏览

swiftui - 属性包装器不影响 TextField

我写了propertyWrapperMaxCount来限制. 但是,虽然view 显示 trimmed ,但显示 full 。StringTextFieldTextStringTextFieldString

我可以通过 below 实现预期的行为ViewModifier,但这对我来说似乎不是一个好习惯,我想通过@propertyWrapper.

MaxCount.swift

ContentView.swift

0 投票
0 回答
49 浏览

ios - @MainActor 与 propertyWrapper 一起使用时不安全吗?

合用又不安全@mainActorpropertyWrapper代码将直接在后台线程中执行。这是一个错误?

这是演示:

0 投票
1 回答
37 浏览

swift - SwiftUI 在视图层次结构中传递变量

我有一个关于我的 Swift / SwiftUI 应用程序架构的问题,该应用程序由一个 ListView、详细视图和包含 2 个输入视图的详细视图组成。具体来说,我想知道这是否是正确的方法。

架构如下:

列表视图启动视图模型控制器的@StateObjct。

视图模型控制器:

列表视图模型如下所示:

我通过以下方式将练习变量传递给详细视图:

详细视图接受练习变量作为绑定:

问题是,每次我尝试显示 ListView 时,程序都会冻结而没有警告或错误。我想我对绑定/属性包装器有误解。

谢谢你的帮助。

0 投票
0 回答
25 浏览

ios - 斯威夫特 PropertyWrapper。无法初始化变量

所以,我尝试创建一个属性包装器,从不需要的字符中去除电话号码并向其添加国家/地区代码:

现在,当我尝试创建这样的 var 时@MSISDN var msisdn: String = "69 (4615)-11-21" ,出现以下错误

如果我尝试像下面这样分两个步骤来做,一切正常。

任何人都可以帮我一个大忙并为我分解吗?

0 投票
1 回答
36 浏览

swift - @Binding 和 Binding 的区别在斯威夫特

我知道这@Binding是一个属性包装器,我相信这Binding<Type>是一种类型转换,但实际上有什么区别?

例如声明一个 var,如:

相对