草庐IT

MyProtocol

全部标签

ios - 创建一个实现特定协议(protocol)的对象数组

长话短说我正在寻找一个数组类型(vararray=[TheTypeImLookingFor]()),例如“所有子类UIViewController和的对象”实现协议(protocol)MyProtocol。解释我正在构建一种带有容器View和嵌入式subview(Controller)的向导View。没问题,只要我只有一个base类型的subviewController,这就会起作用。由于屏幕的内容,我现在有一堆MyTableViewController类型的ViewController,它是UITableViewController的子类和其他具有常规UIViewController

objective-c - 从 Objective-C 协议(protocol)实例匹配 Swift 协议(protocol)

我正在寻找一种方法来动态匹配Objective-CProtocol实例与相应的Swift协议(protocol)。我在swift中定义了一个与Objective-C兼容的协议(protocol):@objc(YHMyProtocol)protocolMyProtocol{}我尝试在函数中执行匹配:publicfuncexistMatch(_meta:Protocol)->Bool{//NotworkingifmetaisMyProtocol{returntrue}//NotworkingalsoifmetaisMyProtocol.Protocol{returntrue}returnf

ios - 协议(protocol)实现协议(protocol)的默认实现

我正在尝试创建一个将由某些类实现的协议(protocol),所有这些类也应该实现UIScrollViewDelegate。我想到的是让我的新协议(protocol)实现协议(protocol)UIScrollViewDelegate。protocolMyProtocol:UIScrollViewDelegate{varmyVar:NSString{get}funcmyMethod()}由于该协议(protocol)应该有其默认实现,我还为此协议(protocol)创建了一个扩展。extensionMyProtocol{funcmyMethod(){print("I'mprinting"

arrays - Swift 3 无法将符合协议(protocol)的对象数组附加到该协议(protocol)的集合

下面我粘贴了代码,您应该能够将其粘贴到Swift3playground中并查看错误。我定义了一个协议(protocol)并创建了一个该类型的空数组。然后我有一个符合协议(protocol)的类,我尝试将其附加到数组,但出现以下错误。protocolMyProtocol{vartext:String{get}}classMyClass:MyProtocol{vartext="Hello"}varcollection=[MyProtocol]()varmyClassCollection=[MyClass(),MyClass()]collection.append(myClassCollec

objective-c - Swift 相当于 id<MyProtocol>?

问题在标题中。在Objective-C中,如果我想拥有一个HAS遵守特定协议(protocol)的属性(如委托(delegate)),可以这样定义它:@property(weak)iddelegate;我如何在Swift中执行此操作? 最佳答案 协议(protocol)是一种类型,因此您可以将其用作已声明的变量类型。要使用weak,您必须将类型包装为Optional。所以你会说:weakvardelegate:MyDelegate?但是为了让它工作,MyDelegate必须是一个@objc或class协议(protocol),以保证

ios - 如何定义一个符合协议(protocol)的对象数组?

给定:protocolMyProtocol{typealiasTvarabc:T{get}}还有一个实现MyProtocol的类:classXYZ:MyProtocol{typealiasT=SomeObjectvarabc:T{/*Implementation*/}}如何定义符合MyProtocol的对象数组?varlist=[MyProtocol]()给出(连同大量SourceKit崩溃)以下错误:Protocol'MyProtocol'canonlybeusedasagenericconstraintbecauseithasSelforassociatedtyperequirem

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

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

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

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

swift - Structs 上的协议(protocol)扩展导致编译错误 'Self' 约束为非协议(protocol)类型

我正在尝试将受限协议(protocol)扩展应用到结构(Swift2.0)并收到以下编译器错误:type'Self'constrainedtonon-protocoltype'Foo'structFoo:MyProtocol{letmyVar:Stringinit(myVar:String){self.myVar=myVar}}protocolMyProtocol{funcbar()}extensionMyProtocolwhereSelf:Foo{funcbar(){print(myVar)}}letfoo=Foo(myVar:"Hello,Protocol")foo.bar()我可

swift - Structs 上的协议(protocol)扩展导致编译错误 'Self' 约束为非协议(protocol)类型

我正在尝试将受限协议(protocol)扩展应用到结构(Swift2.0)并收到以下编译器错误:type'Self'constrainedtonon-protocoltype'Foo'structFoo:MyProtocol{letmyVar:Stringinit(myVar:String){self.myVar=myVar}}protocolMyProtocol{funcbar()}extensionMyProtocolwhereSelf:Foo{funcbar(){print(myVar)}}letfoo=Foo(myVar:"Hello,Protocol")foo.bar()我可