草庐IT

compact_protocol

全部标签

swift - 无法使用具体子类在 Swift 中实现协议(protocol)中的属性

我正在做一些类似于JAVA中的桥接模式的事情,DriverType是一个协议(protocol),需要一个名为vehicle的属性才能成为Drivable对象,Drivable也是一个协议(protocol),被类'Car'采用protocolDrivable{varspeed:Double{get}}protocolDriverType{varvehicle:Drivable{get}}classCar:Drivable{varspeed=80.0;varbrand="BMW"}classDriver:DriverType{varvehicle:Car=Car()//Error:Ty

swift - 快速协议(protocol)之间的循环

我正在尝试在Swift文件中定义一些协议(protocol),但是我注意到如果协议(protocol)有交叉引用,XCode就会出现错误并且无法使用该项目。使用的协议(protocol)示例可能是下面使用的协议(protocol):protocolVIPERPresenterProtocol{varview:VIPERViewProtocol?{getset}varinteractor:VIPERInteractorInputProtocol?{getset}varwireFrame:VIPERWireFrame?{getset}///*Addyourextracommunicatio

swift - 如何使用符合某些协议(protocol)的属性声明一个 swift 类

swift有可能有一个ViewController吗?从xib初始化的类有一个属性也是UIViewController的子类并符合某些协议(protocol)?protocolSomeProtocol{//Somemethods}classViewController:UIViewController{//contentViewisinitializedfromxib@IBOutletweakvarcontentView:UIView!//I'dliketodeclareanotherViewControllerbothconformsto'SomeProtocol'//andasub

ios - Typhoon - 如何注入(inject)符合 PROTOCOL 而不是 CLASS 的参数

我有代表登录用户的类publicclassUser:NSObject{init(authenticator:Authenticator){self.authenticator=authenticator}...}它唯一的初始参数是符合Authenticator协议(protocol)的对象protocolAuthenticator{funcauthenticate(login:String,password:String,handler:(result:AuthenticationResult)->())}在我的例子中,Auth对象是BackendService类的实例我的台风集定义是

swift - 我什么时候应该使用 class-only 协议(protocol)而不是 @objc?

当我们想将协议(protocol)采用限制为类类型时,我们可以使用:class协议(protocol)或@objc协议(protocol)。但是,我没有看到“仅类协议(protocol)”相对于@objc协议(protocol)的优势。我知道的区别:大小@objc更节省空间。@objcprotocolProtocolObjC{}protocolProtocolClass:class{}sizeof(ProtocolObjC)//->8sizeof(ProtocolClass)//->16检查协议(protocol)一致性仅适用于@objc协议(protocol)@objcprotoco

class - Swift:属性是实现协议(protocol)的 UIView 子类

这是场景。我有许多不同的View要显示,具体取决于我向用户显示的模型对象。所以我已经建立了一个协议(protocol),任何实现它的View都可以呈现。classMyItem{/*somemodelproperties*/}protocolItemView:class{//someprotocolmethods(e.g.updateWithItem(),etc)funcsetupItem(item:MyItem)}classSpecificItemView:UIView,ItemView{/*therewillbemultipleclasseslikethis*/funcsetupIt

objective-c - Swift:实现协议(protocol)的类的类型

这个问题在这里已经有了答案:InSwift,howcanIdeclareavariableofaspecifictypethatconformstooneormoreprotocols?(5个答案)关闭6年前。在Objective-C中,您可以在返回值中同时指定类名和一组协议(protocol)。例如,一个UIViewController是一个UIScrollViewDelegate:-(UIViewController*)viewDelegate;我找不到在Swift中表达这一点的方法。这样的事情失败了,因为UIViewController不是协议(protocol):funcvie

ios - NSManagedObject 子类实现具有所需 init 的协议(protocol)的 Swift 链接器错误

我在开始的Swift项目中遇到问题。我使用Alamofire进行网络连接,使用MagicalRecord作为CoreData的包装器。我不知道这是否重要,但我还是要提一下。设置应用程序正在从JSONAPI检索数据。使用Alamofire'sGenericResponseObjectSerialization我创建了Alamofire.Request的扩展,如链接页面所示,并实现了以下协议(protocol):@objcpublicprotocolResponseObjectSerializable{init?(response:NSHTTPURLResponse,representat

ios - 带有 UIButtons 的下拉列表的 UIView 类 - 委托(delegate)/协议(protocol)问题?

我正在尝试在ViewController中创建自定义下拉列表。将有5个下拉列表,每个列表将有4个选项。由于列表的数量,我决定制作一个UIView,其中每个列表都有UIButtons形式的四个选项。现在我只是想弄下来一个;因此,以下代码适用于包含五个选项的一个下拉列表(包括选定的一个,我将在下面进一步解释)。基本上我想要的是有一个按钮显示所选值(或启动时的默认值),然后当您单击该值时,包含4个按钮(也称为下拉列表)的UIView显示在原始按钮。当用户单击其中一个按钮时,我希望具有所选值的按钮具有被单击按钮的标题。我遇到了以下问题:我希望能够将四个按钮的标题从ViewController传

class - 带有 NSBundle 的段错误 11(对于类 :) and multiple type constraint (protocol + class)

以下代码在模拟器中运行良好,但在创建存档时抛出“Commandfaileddutosignal:Segmentationfault:11”。funcpopAction(){MyViewController.pop(self)}classfuncpop(controller:T){letbundle=NSBundle(forClass:controller.dynamicType)//…}下面的编译就好了:letbundle=NSBundle(forClass:object_getClass(self))//orletbundle=NSBundle(forClass:self)dynam