14得票2回答
无法在Swift中将协议作为关联类型用于另一个协议

我有一个协议,Address,它继承自另一个协议,Validator,并且Address在扩展中满足了Validator的要求。 还有另一个协议FromRepresentable,它有一个associatedType(ValueWrapper)的要求,应该是Validator。 现在,如果...

13得票2回答
自身类型、协议扩展和非final类。

我尝试编写一个静态方法,用于从nib中实例化该类的视图。该方法应该是通用的,并适用于每个UIView子类。同时我想保存类型信息——所以,例如,在这段代码中: ```swift let myView: MyCustomView = UIView.fromNib() ``` MyCustom...

12得票1回答
如何在Actor模型中遵循协议?

当我试图定义符合协议的演员(actor),Xcode会给我一个错误提示"Actor-isolated instance method 'foo()' cannot be used to satisfy nonisolated protocol requirement"。我可以将函数更改为非隔离...

11得票2回答
在Swift中使属性既是某种类型又符合协议

我希望创建一个特定类型并符合协议的属性,在Objective-C中,我会这样做:@property (nonatomic) UIViewController<CustomProtocol> *controller; 我想要的是指定该属性可以使用一个UIViewController类...

11得票1回答
Swift - 协议只能用作泛型约束,因为它具有Self或关联类型要求。

我正在开发一个应用程序,需要查询多个API。我为每个API提供者编写了类(在更极端的情况下,为每个特定的API端点编写了类)。这是因为每个API查询都预期返回非常严格的响应类型,因此,如果一个API可以返回用户资料和资料图片,我只想让响应特定于其中之一。 我大致按以下方式实现它: prot...

11得票1回答
Swift 4.1中泛型数组的弱引用到类绑定协议

我正在尝试创建一个通用的 WeakReference 类型,以便我可以将其放入数组中(最终创建一个通用的弱引用数组类型)。 目前为止还不错,但以下代码:class WeakReference<ElementType: AnyObject> { weak var eleme...

11得票2回答
运行时仅知数据类型的情况下,如何使用 Swift 4 解析 JSON

在Swift 4中,使用Decodable协议,当仅在运行时才知道要解码的类型时,是否有可能解码JSON对象? 我有一个类似注册表的东西,它将String标识符映射到我们想要解码的类型,如下所示: import Foundation struct Person: Decodable { ...

11得票1回答
将泛型 AnyObject 下转换为协议相关类型 Self.Model

我正在开发一个库Restofire,希望在其中保留一个配置对象。我想在配置对象中拥有一个ResponseSerializer,但问题是ResponseSerializer是一个泛型。 public struct Configuration<M> { /// The De...

11得票2回答
如何在UML中可视化协议和扩展?

使用UML接口来可视化Swift协议似乎是合理的。但是,我应该如何可视化提供特定协议默认实现的扩展呢?我是否应该使用类似于<<extension>>ProtocolName的类来继承该协议?

11得票1回答
何时在Swift中使用协议?

今天我提出了一个问题,因为今天我有点迷茫。这个问题与Swift和协议有关,更多地涉及到面向协议的编程(POP)。 我读过相关文章,甚至看过一本书,但我仍然感到困惑。每个人似乎都说协议是一个很好的工具等等,但我并不真正理解它的威力。 我有一个问题,因为我正在编写一个名为Volume的类,它是...