草庐IT

Protocols

全部标签

ios - 如何在 Swift 协议(protocol)可选函数中使用枚举作为参数

我在Swift中有这个枚举enumDirection:Int{caseLeft2Right=0,Right2Left}还有这个协议(protocol)@objcprotocolCellDelegate:NSObjectProtocol{optionalfunchas(direction:SwipeDirection)->Bool}我收到这个错误方法不能被标记为@objc,因为参数的类型不能在Objective-C中表示谁能告诉我为什么会出现此错误以及如何解决?谢谢! 最佳答案 @objc属性使协议(protocol)与Objecti

ios - conformsToProtocol 不会用自定义协议(protocol)编译

我想检查UIViewController是否符合我自己创建的协议(protocol):importUIKitprotocolmyProtocol{funcmyfunc()}classvc:UIViewController{}extensionvc:myProtocol{funcmyfunc(){//Myimplementationforthisclass}}//Notallowedletresult=vc.conformsToProtocol(myProtocol)//AllowedletappleResult=vc.conformsToProtocol(UITableViewDele

generics - 在 Swift 泛型类型的 where 子句中访问自定义协议(protocol)的关联类型

我希望能够像这样声明一个协议(protocol):protocolTypedHashable{typealiasType}并像这样在where子句中使用它:classUsingTypedHashable{...}由于我看不到的原因,编译器在“K.Type”的点下给我以下错误:Expected':'or'=='toindicateaconformanceorsame-typerequirement我已经看到代码使用在协议(protocol)中使用typealias声明的关联类型访问where子句中的那些typealias以进行类型断言。这是一些编译代码,并使用Swift标准协议(prot

Swift 泛型延期问题

我正在尝试这样做,但遇到了一些麻烦这是自定义协议(protocol)protocolCustomProtocol{}子自定义协议(protocol)protocolSubCustomProtocol:CustomProtocol{}子自定义协议(protocol)实现classSubCustomProtocolImplementation:SubCustomProtocol{}这是自定义类classCustomClass{varcustomProtocol:P?funcdoSomething(){}}子自定义类classSubCustomClass:CustomSubClass{}还有

具有约束关联类型错误 "Type is not convertible"的 Swift 协议(protocol)

我已经创建了2个具有关联类型的协议(protocol)。符合Reader的类型应该能够生成符合Value的类型的实例。复杂层来自符合Manager的类型应该能够生成具体的Reader实例,该实例生成特定类型的Value(Value1或Value2)。在我对Manager1的具体实现中,我希望它始终生成Reader1,后者又生成Value1的实例。谁能解释一下原因"Reader1isnotconvertibletoManagedReaderType?"当错误行更改为(暂时)返回nil时,所有编译都很好,但现在我无法实例化Reader1或Reader2。可以将以下内容粘贴到Playgrou

ios - 在 Swift 中使用 Comparable 扩展 @objc 协议(protocol)

我正在尝试使用Comparable扩展我的协议(protocol)Option以使用简单的.sort()方法。下面的简短示例仅使用Equatable来显示错误。@objcprotocolOption:Equatable{vartitle:String{get}varenabled:Bool{get}varposition:Int{get}}func==(lhs:Option,rhs:Option)->Bool{returnlhs.position==rhs.position}Option协议(protocol)必须标记为@objc或继承自NSObjectProtocol因为它将与UIK

ios - 在两个不同的类中实现 UITableViewDataSource 协议(protocol)

我不确定是否可以这样做,或者是否不推荐这样做。我想要实现的是以下内容:我有2个类classA和classB,它们引用了相同的UITableview实例。我想要的是classA负责UITableViewDataSource协议(protocol)的2个必需方法的实现:numberOfRowsInSectioncellForRowAt然后我希望classB能够实现其他可选方法,例如titleForHeaderInSection。那么classA如何拥有一些协议(protocol)方法的默认实现,并让classB成为一个可以构建在classB之上的类>完成了吗?在某种程度上,我面临的问题如下

swift - init() 与 Swift 协议(protocol)有什么关系?

Swift中的协议(protocol)可以在其定义中声明init()方法。但是,除了强制符合标准的类按照协议(protocol)中的方式定义init()之外,我想不出任何用例可以解决任何问题。我们可以在协议(protocol)类型上调用声明的方法,但协议(protocol)上的init不能用于实例化其对象,这是它的唯一目的。在协议(protocol)中声明init()方法解决了什么问题? 最佳答案 我认为真正的效用是在通用类o函数中用作约束时出现的。这是我的一个项目中的真实代码。我用init声明了一个协议(protocol):pro

Swift 协议(protocol)定义返回 self 的类方法

我的代码在XCode6beta中工作,但最近在更新到xcode6.1后停止工作。这是我的协议(protocol):protocolCanDeserialiseFromJson{classfuncFromJson(json:JSONValue)->Self}这是实现:extensionInvoice:CanDeserialiseFromJson{classfuncFromJson(json:JSONValue)->Self{returnInvoice()}}这没有给出错误:'Invoice'isnotconvertableto'Self'正如我所说,这曾经有效,但我不明白为什么它不再有效

ios - 使 swift 类符合协议(protocol) - 在静态/类级别

我正在尝试在Swift中构建一个通用的UITableViewController子类,它将容纳任意数量的不同类型的表格View单元格,而无需了解其中任何一个的内部知识。为此,我正在尝试为我的模型和我的表格View单元格使用协议(protocol)。模型的协议(protocol)将返回我应该去哪个单元格类,单元格的协议(protocol)将返回对给定模型的单元格高度应该是多少等问题的答案。但是我在使协议(protocol)工作时遇到了问题,因为对于第二个协议(protocol),我想转到单元格的类而不是它的实例。模型协议(protocol)如下:protocolJBSTableItemD