7得票1回答
Swift协议可以是单例吗?

我尝试使用单行单例初始化方式(如在类中)创建一个单例,这里是一些错误截图: 你能帮我理解这些错误吗?另外,单例协议是否可行? 提前感谢。

153得票3回答
协议不符合自身?

为什么这段 Swift 代码无法编译? protocol P { } struct S: P { } let arr:[P] = [ S() ] extension Array where Element : P { func test<T>() -> [T] ...

9得票1回答
隐式解包可选项协议符合性

我想创建一个Swift协议,可以应用于UILabel、UITextField和UITextView,并且包含它们的text、attributedText和font属性。 然而,这三个类在使用这些属性时是否使用可选类型或隐式解包可选类型方面存在不一致性。 例如,如果我创建了这个协议: pr...

84得票2回答
我可以在协议中使用 init 函数吗?

当我尝试这样实现我的协议:protocol Serialization { func init(key keyValue: String, jsonValue: String) } 我收到一个错误提示:在函数声明中期望标识符。 我为什么会收到这个错误?

25得票3回答
协议内部的嵌套类型

可以在协议中声明嵌套类型,例如:protocol Nested { class NameOfClass { var property: String { get set } } } Xcode显示"此处不允许使用该类型":类型“NameOfClass”不能嵌套...

158得票6回答
协议只能作为通用约束使用,因为它具有Self或关联类型要求。

我有一个名为RequestType的协议,它有一个关联类型Model如下:public protocol RequestType: class { associatedtype Model var path: String { get set } } public ext...

46得票3回答
为什么协议中的只读属性需求不能由符合该属性的属性满足?

为什么以下代码会产生错误?protocol ProtocolA { var someProperty: ProtocolB { get } } protocol ProtocolB {} class ConformsToB: ProtocolB {} class SomeClass...

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

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

8得票1回答
在协议中定义默认参数并实现函数

Swift协议可以通过为其添加扩展来为函数和计算属性提供默认实现。我经常这样做。据我了解,默认实现只用作“备选方案”:当类型符合协议但未提供自己的实现时,它将被执行。 至少这是我在The Swift Programming Language指南中所读到的: 如果符合类型提供其自己的方法或属...

90得票9回答
协议函数返回Self

我有一个名为P的协议,它返回对象的副本:protocol P { func copy() -> Self } 并且有一个实现P接口的类C:class C : P { func copy() -> Self { return C() } } 然...