草庐IT

UIApplicationDelegate_Protocol

全部标签

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

Swift:在协议(protocol)扩展中提供默认协议(protocol)实现

我正在尝试使用Swift、协议(protocol)和协议(protocol)扩展。具体来说,我试图在协议(protocol)扩展中提供协议(protocol)的默认实现。这是我的代码:protocolProto:class{funcsomeMethod()->String}extensionProto{staticfunccreate()->Self{returnProtoDefaultImpl()as!Self}}classProtoDefaultImpl:Proto{funcsomeMethod()->String{return"doingsomething"}}letinstan

swift - 在 Swift 中使用协议(protocol)时的类型转换

protocolTest{vart:Int{setget}}structA:Test{vart:Int}structB:Test{vart:Intvars:String}leta=A(t:1)letb=B(t:2,s:"1")letc=aasTestletd:[Test]=[a,b]lete:[A]=[a,a]letf=eas[Test]letg=eas![Test]“letf=eas[Test],letg=eas![Test]”总是出错。我有一个功能,我必须将[Test]发送到其中。将A转换为测试很容易使用。但是涉及到Array,我不得不遍历所有的数据。有没有什么好的方法可以把[A]

ios - 类型 '[NSObject : AnyObject]!' 不符合协议(protocol) 'DictionaryLiteralConvertible'

self.textView.linkTextAttributes=[NSForegroundColorAttributeName:UIColor.blackColor(),NSUnderlineStyleAttributeName:NSUnderlineStyle.StyleSingle]这给出了一个编译器错误,提示Type'[NSObject:AnyObject]!'不符合协议(protocol)“DictionaryLiteralConvertible”。我刚开始使用Swift,不知道哪里出了问题。 最佳答案 问题是NSUnde

swift - 为什么我需要强制向下转换才能使用具有约束的协议(protocol)数组

这是我的代码:importUIKitprotocolTestwhereSelf:UIView{}classMyView:UIView,Test{}letarray:[Test]=[MyView()]letview=array[0]letmyAlpha=(viewasUIView).alpha//ERROR错误是:error:'Test'isnotconvertibleto'UIView';didyoumeantouse'as!'toforcedowncast?为何力垂头丧气?该协议(protocol)只能被UIView采用,因此数组array中的每个元素都是一个UIView,对吧?是否