草庐IT

compact_protocol

全部标签

swift - 为什么我不能在 self 是一个类的协议(protocol)扩展中更改变量?

我很好奇为什么这不起作用:publicprotocolMyProtocol{vari:Int{getset}}publicprotocolMyProtocol2:class,MyProtocol{}publicextensionMyProtocol2whereSelf:AnyObject{funca(){i=0错误:Cannotassigntoproperty:'self'isimmutable为什么?只有类可以采用MyProtocol2。如果我在MyProtocol后面添加:class声明,它就可以工作。我不明白为什么它在子协议(protocol)上不起作用。

Swift:是否可以向协议(protocol)添加协议(protocol)扩展?

假设我有两个协议(protocol):protocolTheirPcol{}protocolMyPcol{funcextraFunc()}我想要做的是为“TheirPcol”创建一个协议(protocol)扩展,让extraFunc()处理任何符合“TheirPcol”的东西。所以像这样:extensionTheirPcol:MyPcol{//Error'Extensionofprotocol'TheirPcol'cannothaveaninheritanceclause.funcextraFunc(){/*domagic*/}}structTheirStruct:TheirPcol{

Swift:是否可以向协议(protocol)添加协议(protocol)扩展?

假设我有两个协议(protocol):protocolTheirPcol{}protocolMyPcol{funcextraFunc()}我想要做的是为“TheirPcol”创建一个协议(protocol)扩展,让extraFunc()处理任何符合“TheirPcol”的东西。所以像这样:extensionTheirPcol:MyPcol{//Error'Extensionofprotocol'TheirPcol'cannothaveaninheritanceclause.funcextraFunc(){/*domagic*/}}structTheirStruct:TheirPcol{

ios - 'title' 的类型与协议(protocol) 'MKAnnotation' 要求的可选性不同

我快速学习了RayWenderlichMapKit教程:http://www.raywenderlich.com/90971/introduction-mapkit-swift-tutorial当我创建Artwork类时,我得到了标题中写的错误。我不知道我必须做什么。这是代码:classArtwork:NSObject,MKAnnotation{lettitle:StringletlocationName:Stringletdiscipline:Stringletcoordinate:CLLocationCoordinate2Dinit(title:String,locationNam

ios - 'title' 的类型与协议(protocol) 'MKAnnotation' 要求的可选性不同

我快速学习了RayWenderlichMapKit教程:http://www.raywenderlich.com/90971/introduction-mapkit-swift-tutorial当我创建Artwork类时,我得到了标题中写的错误。我不知道我必须做什么。这是代码:classArtwork:NSObject,MKAnnotation{lettitle:StringletlocationName:Stringletdiscipline:Stringletcoordinate:CLLocationCoordinate2Dinit(title:String,locationNam

ios - 将泛型 AnyObject 向下转换为协议(protocol)关联类型 Self.Model

我正在开发一个库Restofire我想在其中保留一个配置对象。我想在配置对象中有一个ResponseSerializer,但问题是ResponseSerializer是一个通用的。publicstructConfiguration{///TheDefault`Configuration`.staticletdefaultConfiguration=Configuration()///ThebaseURL.`nil`bydefault.publicvarbaseURL:String!///The`ResponseSerializer`publicvarresponseSerializer

ios - 将泛型 AnyObject 向下转换为协议(protocol)关联类型 Self.Model

我正在开发一个库Restofire我想在其中保留一个配置对象。我想在配置对象中有一个ResponseSerializer,但问题是ResponseSerializer是一个通用的。publicstructConfiguration{///TheDefault`Configuration`.staticletdefaultConfiguration=Configuration()///ThebaseURL.`nil`bydefault.publicvarbaseURL:String!///The`ResponseSerializer`publicvarresponseSerializer

Swift 4 协议(protocol)组合一致性

这个问题在这里已经有了答案:Whycan'taget-onlypropertyrequirementinaprotocolbesatisfiedbyapropertywhichconforms?(3个答案)关闭4年前。[首先,如果有人对问题有更好的名称,建议就会被很好地接受。到目前为止,我没有为这个问题找到更好的名称。]所以,这就是问题。假设我有一个协议(protocol)ProtocolA、一个协议(protocol)ProtocolB和一个协议(protocol)ProtocolX定义如下:protocolProtocolA{funcdoSomethingA()}protocolP

Swift 4 协议(protocol)组合一致性

这个问题在这里已经有了答案:Whycan'taget-onlypropertyrequirementinaprotocolbesatisfiedbyapropertywhichconforms?(3个答案)关闭4年前。[首先,如果有人对问题有更好的名称,建议就会被很好地接受。到目前为止,我没有为这个问题找到更好的名称。]所以,这就是问题。假设我有一个协议(protocol)ProtocolA、一个协议(protocol)ProtocolB和一个协议(protocol)ProtocolX定义如下:protocolProtocolA{funcdoSomethingA()}protocolP

Swift:实例化符合协议(protocol)的类(AnyClass)

我想实现类似“registerClassForAction”的东西。为此,我定义了一个协议(protocol):@objcprotocolTestProt{functestMe()->String}让我们做一个类声明:classTestClass:NSObject,TestProt{functestMe()->String{return"test"}}我定义了在另一个类中注册对象的函数:funcregisterClassForAction(aClass:AnyClass){...}切换到REPL,我将模拟register方法:letaClass:AnyClass=TestClass.c