jjzjj

Protocols

全部标签

swift - 什么是 NSObject<Protocol> 的 swift 等价物?

我有一个类需要设置一个NSObject子类的变量并且实现了某个协议(protocol)。protocolProtoTest{varfoo:Int{getset}}classAClass:NSObject,ProtoTest{varfoo:Int=3}classBClass:NSObject,ProtoTest{varfoo:Int=4}classConsumer{varprotoInstance:ProtoTest?//DoesnotcaryanyinformationoftheclassjusttheprotocolvarprotoInstance2:protocol?init(x:

arrays - 将 Array<Struct> 作为 Array<Any> 返回时出错

我有一个函数可以根据我的数据结构的内部条件返回几种不同的类型,所以我返回一个Any数组并留下注释解释它可能是的类型。(我确定有更好的解决方案,但我不知道它是什么)。这给了我错误Cannotconvertreturnexpressionoftype'[S]'toreturntype'[Any]'其中S是一个纯Swift结构。我将其归结为一个玩具示例来说明问题:protocolP{}//protocolstructS:P{}//structconformingtoprotocol//WillCompile:allprotocolsimplicitlyconformtoAnyfuncretu

swift - 协议(protocol)中的 associated(typealias) 类型和 Self 如何工作?

对不起,我是编程新手,我尽量表达我想问的问题。请原谅我。我在协议(protocol)中看到过类似的东西。protocolPro1{typealiasElement//...}protocolPro2:Pro1{typealiasElement=Self//...}Element在协议(protocol)中,这个Element是否相互关联?我不明白下面的表达式是什么意思:typealiasElement=Self非常感谢。 最佳答案 Pro1写这个protocolPro1{typealiasElement}您只是告诉我们将有一个名为E

Swift 忘记对象是一种类型

当在UICollectionView.visibleCells()中循环遍历UICollectionViewCells数组然后检查单元格是否符合协议(protocol)时,它忘记了单元格是一个UIView并且具有框架属性。forcellincollectionView.visibleCells(){letcellPosition1=cell.frame.originifletcell=cellas?AwesomeCellProtocol{letcellPosition2=cell.frame.origincell.doAwesome(cellPosition)}}Swift在设置cel

ios - 以 Swifty(/协议(protocol))方式在 Controller 之间传递信息?

我正在尝试将信息从ControllerA传递到ControllerB。问题是,我想要:简洁:尽量减少XCode对一些关键信息的自动补全。我想以一种简单的方式知道在将Controller插入堆栈之前所需的确切参数。避免转场。根据我的理解,segues在Storyboard中创建了很多紧密耦合。我不想依赖Storyboard来传递信息。(每次我想将ControllerA切换到另一个Controller时,我都必须去Storyboard中进行一些更改)。我可能会在某个时候将我的应用拆分成多个Storyboard,而处理转场可能会非常烦人。Beautiful:也许Swift可以提供一个我没有想

ios - 协议(protocol)委托(delegate)有时不工作

我遇到了一个协议(protocol)委托(delegate)并不总是响应的问题。这是我的实现:protocolCameraViewDelegate:class{funcdidTapCancel(sender:CameraView)funcdidFinishSelectingPhoto(image:UIImage,sender:CameraView)}在CameraView类中我有:weakvardelegate:CameraViewDelegate?和@IBActionfunccancelButtonTapped(){delegate?.didTapCancel(self)}@IBAc

swift - 协议(protocol)的属性声明中的 "get"是什么意思?

我正在查看自动布局库中的一些代码。其中,有一个UIView采用的协议(protocol):extensionUIView:Constrainable{}extensionUILayoutGuide:Constrainable{//LayoutGuidedoesn'thavebaselineanchors,sojustusethebottomanchorpublicvarfirstBaselineAnchor:NSLayoutYAxisAnchor{returnbottomAnchor}publicvarlastBaselineAnchor:NSLayoutYAxisAnchor{ret

swift - 泛型类型错误 : Cannot explicitly specialise a generic type

我正在尝试在RequestManager中创建一个通用函数通过ServiceManager将服务器接收到的JSON转换为指定类型.这是我的代码:请求管理器:typealiasResultResponseManager=(_data:AnyObject?,_error:ErrorPortage?)->VoidtypealiasSuccessResponseManager=(_success:Bool,_error:ErrorPortage?)->VoidtypealiasobjectBlock=(_object:T?,_error:ErrorPortage?)->Voidextensio

swift - 在 Swift 中,如何在类型参数受协议(protocol)约束的泛型类中使用关联类型?

在Swift中,我有一个这样的协议(protocol):protocolP{associatedtypeTfuncf(val:T)}我想定义一个这样的类:classB{}然后在类B中使用associatedtypeT。我已经试过了:classB{varv:T//compilersays"Useofundeclaredtype"init(){}}我也试过这个:classB{typealiasT=Yvarv:Tinit(){}funcg(val:X){val.f(val:v)//compilersays"Cannotinvoke'f'withanargumentlistoftype'(va

swift - 如何在 Swift 中创建一个返回符合协议(protocol)的类型的函数?

我如何在Swift中创建一个返回符合协议(protocol)的类型的函数?这是我现在正在尝试的,但显然不会像这样编译。structRoutingAction{enumRoutingActionType{caseunknown(info:String)caserequestJoinGame(gameName:String)caserequestCreateGame(gameName:String)caseresponseJoinGamecaseresponseCreateGame}//Any.TypeisthetypeIwanttoreturn,butIwanttospecifythat