草庐IT

SMB1Protocol

全部标签

swift - 在 swift 中,为什么我不能实例化一个有初始化器的协议(protocol)?

我知道通常我无法实例化协议(protocol)。但是,如果我在协议(protocol)中包含一个初始化程序,那么编译器肯定知道当协议(protocol)稍后被结构或类使用时,它会有一个可以使用的初始化程序?我的代码如下和行:protocolSolution{varanswer:String{get}}protocolProblem{varpose:String{get}}protocolSolvableProblem:Problem{funcsolve()->Solution?}protocolProblemGenerator{funcnext()->SolvableProblem}p

swift - 协议(protocol)泛型

我有这个协议(protocol):protocolAddable{mutatingfuncaddNumber(value:Int)}和这个扩展extensionInt:Addable{mutatingfuncaddNumber(value:Int){self=self+value}}这段代码:varnumber:Int=10number.addNumber(10)println(number)正确打印20现在我想将Addable协议(protocol)扩展到其他类型。如果我理解正确的话,我不会将泛型与协议(protocol)一起使用,而是使用关联类型:protocolAddable{t

swift - @objc、@class_protocol 和 :class in swift Swift 之间的区别

有什么区别:@objc协议(protocol)名称{}@class_protocol协议(protocol)名称{}协议(protocol)名称:类{} 最佳答案 Obj-C兼容协议(protocol)(只能由类采用,可以包含可选方法,可以动态检查类是否符合该协议(protocol))。只能由类采用的协议(protocol)(不推荐使用的语法)只能被类采用的协议(protocol)(新语法) 关于swift-@objc、@class_protocol和:classinswiftSwift

ios - 符合 Codable 协议(protocol)的类因 encodeWithCoder : unrecognized selector sent to instance 而失败

我知道有几个与此类似的问题,它们往往都围绕着未正确遵守协议(protocol)的类展开,但这不应该是这里的直接问题。以下是目前给我这个问题的代码的浓缩版:enumBinary:Int{casea=0caseb=1casec=9}finalclassMyClass:NSCoder{varstring:String?vardate:Date?varbinary:Binary=.coverrideinit(){}enumCodingKeys:CodingKey{casestring,date,binary}}extensionMyClass:Codable{convenienceinit(f

swift - swift 中 "event listeners"的想法如何分为 Action 和协议(protocol)?

我的问题作为一名正在学习Swift的新程序员。我想知道为什么在事件监听器的实现方式之间似乎存在任意划分。在一些教程中,指出您可以简单地在Storyboard上的View元素和ViewController之间拖动以创建Action(事件监听器)。@IBActionfuncclickButtonListener(_sender:UIButton){print("helloworld")}但在后面的教程中,我注意到某些类似事件监听器的功能也以协议(protocol)的形式实现classViewController:UIViewController,UIScrollViewDelegate{f

ios - 如何使某些协议(protocol)方法仅适用于特定的 iOS 版本?

是否有可能有类似的东西:protocolFooBarDelegate:class{funcfoo()if#available(iOS10.0,*){funcbar()}}? 最佳答案 是的,这是可能的:protocolFooBarDelegate:class{funcfoo()@available(iOS10.0,*)funcbar()} 关于ios-如何使某些协议(protocol)方法仅适用于特定的iOS版本?,我们在StackOverflow上找到一个类似的问题:

swift - 在具有 self 类型要求的协议(protocol)上键入删除

我有一个名为Shape的协议,它符合Comparable。最后,我想创建一个符合这个协议的数组,即使它们不是同一个子类型。我创建了一些符合Shape的类,即Triangle、Square和Rectangle。我要做的是定义另一个名为Drawing的类,它可以接受任何形状的数组。//:Playground-noun:aplacewherepeoplecanplayimportFoundationimportUIKitprotocolShape:Comparable{vararea:Double{get}}extensionShape{staticfuncBool{returnlhs.ar

swift - 有没有办法在 Kotlin 中完成 Swift 的协议(protocol)组合

因此对于Swift,我们可以使用&运算符创建新类型或将其作为参数传递给方法。示例Swift代码:protocolFooable{}protocolBarable{}//thenewprotocoltypealiasFooBarable=Fooable&Barable//methodparameterfuncdoSomethingFor(object:Fooable&Barable){...}有没有办法在Kotlin的接口(interface)中做到这一点?KotlinInterfacesDocumentationSwiftProtocolsDocumentation

swift - 创建从多个协议(protocol)继承的协议(protocol)类型的对象时出错

在下面的代码中,有3个协议(protocol):Wheeled、Vehicle和WheeledVehicle(继承自Wheeled和车辆)protocolWheeled{varnumberOfWheels:Int{get}}protocolVehicle{varmaker:String{get}varowner:String{getset}varownerKid:String{get}}protocolWheeledVehicle:Wheeled,Vehicle{//simplyjustcombineWheeledandVehicle}classBike:Vehicle,Wheeled

ios - 如何将 Codable 协议(protocol)与引用类型一起使用?

例子:importFoundationclassPlayer:Codable{letname:Stringinit(name:String){self.name=name}}classTeam:Codable{letplayers:[Player]letcapitan:Playerinit(players:[Player],capitan:Player){self.players=playersself.capitan=capitan}}letplayer1=Player(name:"p1")letplayer2=Player(name:"p2")letteam=Team(player