protocols 相关问题

(非)相关对象相互通信的常用方法。

使用协议而不是结构作为(可选数组)扩展?

说你有 结构螺丝:可编码{ 让 id: 字符串 .. 更多的 } 结构钉:可编码{ 让 id: 字符串 .. 更多的 } 然后 结构部分:可编码{ var 螺丝:[螺丝]? var 指甲:[指甲]? } ...

回答 1 投票 0

如何定义协议以包含带有 @Published 属性包装器的属性

当按照当前 SwiftUI 语法使用 @Published 属性包装器时,似乎很难定义一个包含 @Published 属性的协议,或者我肯定需要帮助:) 就像我一样

回答 10 投票 0

NEC红外遥控协议地址注册

AFAICT NEC IR 协议通过发送“设备地址”来工作,该“设备地址”可以是 8 位,后跟初始 8 位的倒数,也可以是 16 位,其中第二个 8 位与

回答 1 投票 0

使用 Vite.js + Cloudflare 时出现协议错误

我在 Laravel 项目中使用 Cloudflare,它在 Vite.js 控制台中出现协议错误。我掌握的数据如下: 当我如下设置服务器设置时,我看到我的 js 和 css fil...

回答 1 投票 0

理解“在通用上下文中查找动态类型”

我想了解这部分。 我正在阅读在通用上下文中查找动态类型,其中包含以下代码片段: func printGenericInfo(_ 值: T) { 让 t = 类型(值:值)

回答 2 投票 0

Xamarin iOS 绑定 - 协议 - 无法创建抽象类的实例

我使用 Sharpie 为 Zebra 扫描仪 SDK 生成了一些绑定代码。 斑马扫描仪 SDK 一旦我处理了 [Verify] 属性,生成的代码就可以正常构建。 的起点...

回答 2 投票 0

通信数据包/帧图:记录协议

你能给我推荐一款图表软件吗,我可以在其中绘制这样的图表(尽可能开箱即用): 这些类型的图表通常用于记录通信协议......

回答 1 投票 0

使用“数据集”包加载数据时出现“协议未知”值错误

我想训练一个面食分类器,目前正在预处理数据。我将其分为训练集、验证集和测试集,并使用以下代码将其保存到我的笔记本电脑上: 数据集.数据集...

回答 1 投票 0

打印头通信协议文档

我想从头开始构建自己的墙壁打印机。 我想使用现成的打印头,例如 EPSON I3200-U1。 驱动打印头需要哪些步骤? 我找不到任何文档...

回答 1 投票 0

SwiftUI 样式不符合其协议

我有一个基于UIKit的项目。目标版本是iOS 15.0。我想将应用程序分别重写为每个模块的 SwiftUI。我想使用样式,ButtonStyle,ToggleStyle 等。 鉴于此...

回答 1 投票 0

SwiftUI viewModel,内部包含[任何协议]数组

我正在尝试实现 viewModel,它包含一个带有可观察对象的数组,并且所有内容都由接口覆盖。我怎样才能实现这个目标?我的代码现在出现错误 输入“任何

回答 1 投票 0

Swift:iVar + Equatable 上的协议约束

上下文 考虑 Swift 5.9 中的这个协议和类: 协议 SpinnerHosting:AnyObject { var spinnerItem: SpinnerItem { 获取 } } 最终类 MyViewController:NSViewController { 变种

回答 1 投票 0

BitTorrent 协议实现中握手期间未处理的异常

我正在开发 BitTorrent 客户端,更具体地说,是在 BitTorrent 协议实现上,我遇到了一个错误,该错误导致握手过程中出现未处理的异常。这个

回答 1 投票 0

如何实现协议

有开源的桌面共享协议吗?如果有,它们是什么?谁能告诉我为了实现协议我需要知道的事情,例如,如果我想编写一个桌面共享协议...

回答 2 投票 0

Pycharm+协议 - 如何消除虚假的“Getter 应该返回或产生一些东西”

类MyProtocol(协议): @财产 def my_property(self) -> str: ... 类 MyClass(MyProtocol): @财产 def my_property(self) -> str: # 实际情况

回答 1 投票 0

如何设置我的 @resultBuilder 来与 ForEach 一起使用,但仍然遵守协议?

我在项目中定义了以下容器,第一个容器可以工作,但是第二个容器不能,因为它会引发以下错误。 参数类型 'ForEach 我在项目中定义了以下容器,第一个容器可以工作,但是第二个容器不能,因为它会引发以下错误。 参数类型“ForEach,Range.Element,PageX>”(又名“ForEach”)不符合预期类型“PageXItem” @PageBuilder在我的NavX结构上实现,如下所示。 @PageBuilder private var content: () -> Content 我希望能够使用独立的 PageX 或通过使用 ForEach 来使用动态集合。无论它是 ForEach(array.indices) 还是任何序列都没关系,这样 ForEach 的每个元素都保证是 PageX。 NavX { PageX { } } 或 NavX { ForEach(...) { _ in PageX {...} } } 这是目前使用的@PageBuilder。最后两个是我最近为实现此目的所做的尝试,但没有一个被证明是成功的。 @resultBuilder public struct PageBuilder { /// Builds a collection of `PageXItem` views. /// /// - Parameter components: A variadic list of views conforming to `PageXItem`. /// - Returns: An array of views that conform to `PageXItem`. static public func buildBlock(_ components: any PageXItem...) -> [any PageXItem] { components } /// Builds a collection of `PageXItem` views, particularly useful for conditional view constructions. /// /// - Parameter components: A variadic list of arrays of views conforming to `PageXItem`. /// - Returns: An array of views that conform to `PageXItem`. static public func buildPartialBlock(_ components: [any PageXItem]...) -> [any PageXItem] { components.flatMap { $0 } } static public func buildFinalResult(_ component: [any PageXItem]) -> [any PageXItem] { component } static public func buildBlock<C: View>(_ component: ForEach<[any PageXItem], UUID, C>) -> ForEach<[any PageXItem], UUID, C> { component } } 要与ForEach合作,您应遵守以下要求: 您的结构必须符合 View(如果不符合),因为 ForEach 仅适用于视图。 struct Item { let name: String } extension Item: View { public var body: Never { fatalError() } } 您的 @resultBuilder 必须仅使用专用协议运行。 protocol ItemConvertible { var items: [Item] { get } } extension Item: ItemConvertible { var items: [Item] { [self] } } @resultBuilder struct ItemsBuilder { static func buildBlock(_ components: ItemConvertible...) -> [ItemConvertible] { components } static func buildFinalResult(_ components: [ItemConvertible]) -> [Item] { components.flatMap(\.items) } } 您应该使用协议扩展 ForEach。 extension ForEach: ItemConvertible where Content == Item { var items: [Item] { data.map(content) } } 现在您可以编写构建器函数了: @ItemsBuilder func content() -> [Item] { Item(name: "1") Item(name: "2") ForEach(3..<5) { Item(name: "\($0)") } } print(content()) // [Item(name: "1"), Item(name: "2"), Item(name: "3"), Item(name: "4")]

回答 1 投票 0

TLS 1.3 协议是否需要 KeyUpdate 功能?

在 TLS 1.3 (RFC8446) 中,有一个新的 HS 消息“KeyUpdate”,它允许任一对等方请求密钥更新。我们正在尝试查明“KeyUpdate”是否是 TLS 1.3 的必需功能。通过阅读

回答 2 投票 0

无显示屏设备的蓝牙数字比较配对

根据蓝牙 5.2 手册,第 1641-1642 页,表 2.8,在两个设备都有显示屏的情况下,应使用数字比较配对。这些显示可用于显示确认...

回答 1 投票 0

Swift:结果的失败类型不能是协议 - “类型'any ShadowError'不能符合错误”

错误是一种协议,人们能够做到这一点...... 让 x: 结果 = .success(()) ShadowError 符合 Error 并且也是一种协议,但人们无法做到这一点...... 协议

回答 2 投票 0

Swift:有什么方法可以返回*类型*(不是*实例*)作为不透明类型吗?

假设我们有一个带有一些私有类型的模块,这些类型不应该被模块的客户端(直接)使用。我们可以定义一个公共协议并使用私有协议来实现该协议......

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.