jjzjj

Protocols

全部标签

swift - 带有关联值的枚举 + 泛型 + 带有关联类型的协议(protocol)

我试图使我的API服务尽可能通用:API服务类classApiService{funcsend(request:RestRequest)->T{returnrequest.parse()}}以便编译器可以从请求类别.auth推断响应类型和.data:letapiService=ApiService()//StringletstringResponse=apiService.send(request:.auth(.signupWithFacebook(token:"9999999999999")))//IntletintResponse=apiService.send(request:.

swift - 如何为 UIPageViewControllerDataSource 提供默认实现?

我假设这个问题的答案将解决Objective-C协议(protocol)的一般问题,但这是我遇到的第一个此类问题。我希望在实现UIPageViewControllerDataSourceWithConnections时使用这些方法。importUIKitprotocolUIPageViewControllerDataSourceWithConnections:UIPageViewControllerDataSource{varconnectedViewControllers:[UIViewController]{get}}extensionUIPageViewControllerDat

swift - 如果类没有父类(super class),我如何遵守协议(protocol)?

这个问题在这里已经有了答案:WhyinswiftwecannotadoptaprotocolwithoutinheritanceaclassfromNSObject?(2个答案)关闭7年前。我有一个Controller类(不是viewController),我希望它符合某个协议(protocol)。此Controller类不是任何其他类的子类,因此它没有父类(superclass)。如果类没有父类(superclass),我如何遵守协议(protocol)?这是行不通的:classxxxController,yyyDelegate这不是我们想要的:classxxxController:

swift - Swift 中的 "marker protocol"是什么?

我正在搜索一些Swift开源代码,现在看到“标记协议(protocol)”一词弹出两次。从上下文来看,我将其推断为出于代码可读性原因而存在的协议(protocol),而不是实际执行规则。谁能准确解释什么是“标记协议(protocol)”以及为什么要使用它? 最佳答案 标记协议(protocol)是从其他允许协议(protocol)或接口(interface)的面向对象编程语言借用的设计模式。这个想法是将一个类标记为以特定方式使用,但不需要该类通过实现特定方法来提供任何功能。例如,Java使用这种方法来标记类可序列化。这是一个例子:p

swift - 如何使用子类来遵守协议(protocol)

假设我有一个协议(protocol)protocolA:class{funcconfigure(view:UIView)}现在我想遵守这个协议(protocol),使用UILabel作为UIView的子类finalclassB:A{init(){}funcconfigure(view:UILabel){}}但是错误TypeBdoesnotconformtoprotocolA似乎Swift需要与协议(protocol)中规定的类型完全相同的类型。这行得通finalclassB:A{init(){}funcconfigure(view:UIView){}}但是我想使用UILabel,如何解

ios - 如何创建具有符合通用协议(protocol)的弱委托(delegate)的基类?

我想为UIView创建一个基类,它要求委托(delegate)符合View定义的特定协议(protocol)。classBaseView:UIView{weakvardelegate:P?}protocolMyProtocol{}classMyView:BaseView{}这给了我错误:“‘weak’不得应用于非类绑定(bind)的‘T’;考虑添加具有类绑定(bind)的协议(protocol)一致性”。如何修复此错误?或者有一些解决方法吗?还是一开始就没有必要让委托(delegate)变量变弱?提前致谢。 最佳答案 由于weak是

ios - 使用解码对象(: forKey:) to decode an object that conforms to a protocol

我有一个Objective-C协议(protocol),需要符合NSSecureCoding:@protocolMyProtocol…@end我有一个父对象,它存储对符合MyProtocol的对象的引用,我希望父对象也符合NSSecureCoding。当我尝试这个时:requiredinit?(coderaDecoder:NSCoder){ifletchildObject=aDecoder.decodeObject(of:MyProtocol.self,forKey:"childObject"){self.childObject=childObject}else{returnnil}}

ios - 没有 prepareForSegue 的 Swift 委托(delegate)

我是swift和ios开发的新手。我有两个类(class),希望他们联系起来。我没有使用prepareForSegue。这就是我的,一定是哪里出了问题。protocolTimeDelegate{functimerDidFinish()}classTimer:UIViewController{//thisiswherewedeclareourprotocolvardelegate:TimeDelegate?overridefuncviewDidLoad(){super.viewDidLoad()//Doanyadditionalsetupafterloadingtheview.}over

ios - 如何使用索引(:) with [SomeProtocol]?

我有一堆UIView类。有些符合特定的协议(protocol)。我有一个包含这些特定数组的数组,但我无法在此数组上调用index(of:)(此代码可以粘贴到Playground中):importUIKitprotocolViewWithColor{}classBlackView:UIView{}classWhiteView:UIView{}classBlueView:UIView,ViewWithColor{}classGreenView:UIView,ViewWithColor{}classYellowView:UIView,ViewWithColor{}letblackView=B

ios - Swift:符合声明类函数返回实例的协议(protocol)

我想要一个通用协议(protocol)来返回给定类的新“随机”配置实例。在ObjC中:@protocolRandom+(instancetype)random;@end@interfaceUIColor(Random)@end@implementation+(instancetype)random{return[UIColorcolorWith...];}@end它适用于ObjC,但我无法让它适用于Swift。在Swift中:protocolRandom{staticfuncrandomExample()->Self}extensionUIColor:Random{finalclass