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

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

89得票4回答
为什么在Swift协议中不能使用let?

我对Swift协议中使用var和{ get set }关键字存在疑惑。根据苹果文档:如果一个协议要求属性同时具有可读性和可写性,那么该属性要求不能由常量存储属性或只读计算属性实现。如果协议仅要求属性具有可读性,则可以使用任何类型的属性来满足需求,如果这对自己的代码有用,则属性也可以是可写的。属...

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

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

81得票7回答
从 AnyObject 扩展的协议和仅限于类的协议有何区别?

这项声明protocol SomeProtocol : AnyObject { } 并且这份声明protocol SomeProtocol : class { } 似乎只有类才能符合此协议(即协议的实例是对象的引用),并且没有其他影响。 它们之间有什么区别吗?应该优先选择其中一个吗?如果没有...

78得票3回答
微信、WhatsApp和其他即时通讯应用程序背后的技术是什么?

我渴望了解不同实时通讯应用的架构。它们是否使用任何通用的协议/架构?

76得票8回答
实施比特流协议

我想要一份详细说明如何逐步实现比特流协议的教程/博客文章。 它的工作原理是什么?如何向对等体发出请求?如何与跟踪器通信。 编程语言不限(java、ruby、perl、c#)

76得票10回答
在协议中使用Swift的Equatable

我不认为这可以做到,但无论如何我会问一下。 我有一个协议:protocol X {} 还有一个类:class Y:X {} 在我的其余代码中,我使用协议X来引用所有内容。我希望能够在代码中做类似于以下的事情: let a:X = ... let b:X = ... if a == b {.....

72得票6回答
如何将协议定义为@ObservedObject属性的类型?

我有一个SwiftUI视图,它依赖于一个ViewModel,该ViewModel具有一些已发布的属性。我想定义一个协议和ViewModel层次结构的默认实现,并使视图依赖于协议而不是具体类? 我想要能够编写以下内容:protocol ItemViewModel: ObservableObje...

71得票4回答
如何在协议扩展中定义初始化器?

protocol Car { var wheels : Int { get set} init(wheels: Int) } extension Car { init(wheels: Int) { self.wheels = wheels ...

70得票6回答
NSNotificationCenter和代理模式(使用协议)的区别?

每个技术都有什么优缺点? 我应该在哪些情况下使用它们?