草庐IT

SMB1Protocol

全部标签

ios - TableView 不符合协议(protocol)

我已经设置了一个基本的CellAssociation协议(protocol)。但是,我添加到协议(protocol)中的任何内容都会:"Type'FooTableView'doesnotconformtoprotocol'CellAssociation'"Xcode似乎给了我一些提示:"Multiplemachingfunctionsnamed'register(cellClass:forCellReuseIdentifier:)'withtype'(AnyClass?,String)->()'(aka'(Optional,String)->()')"和.."Renameto'regi

objective-c - 如何从 Swift 为 Objective-C 中定义的接口(interface)指定协议(protocol)同名

在Objective-C代码中定义如下时,如何从Swift指定Item协议(protocol)?//Objective-C@protocolItem@end@interfaceItem:NSObject@end@implementationItem@end//Swiftvaritem=Item()//iteminterface,butI'dliketodefineasItemprotocol.我应该定义为不同的名称吗? 最佳答案 您无法实例化协议(protocol)类型,因此Item()将始终引用@interfaceItem。您应该

swift - 在 Swift 中检查可选协议(protocol)方法会出错?

阅读有关可选协议(protocol)要求的Apple文档后,它说您可以使用可选链接来检查实现。我试过了,但一直出错。似乎这不再是执行此操作的有效方法,我正在尝试找出现在是否有新的方法来执行此操作。这是一个示例,您可以看到错误:http://swiftstub.com/743693493/这是我的代码:@objcprotocolBearable{funcgrowl()optionalfunccough()->String//Apparentlybearscoughwhentheyarescared.}@objcclassBear:Bearable{varname="BlackBear"f

ios - 符合协议(protocol)的 Swift 结构类型数组

我有一系列符合MyProtocol的struct。我需要这些结构的types的数组(因为它们有一个在MyProtocol中声明的静态方法,我需要能够访问它)。我尝试了各种方法,但我无法让Xcode喜欢它。另外,在这被标记为欺骗之前——我试过this,但我得到的只是://FooandBararestructsconformingtoMyProtocolletMyStructArray:Array=[Foo.self,Bar.self]//Protocol'MyProtocol'canonlybeusedasagenericconstantbecauseithasSelforassocia

swift 2.0 : Creating a Collection Type of Objects that conform to a Generic Protocol

例如:protocolSomeProtocol{typealiasTfuncdoSomething(something:T)}leta=Array()我想要一个数组,它是一个符合SomeProtocol的对象数组。这在理论上似乎很好,但我收到以下错误消息:Cannotbeusedasagenericconstraintbecauseitcontainsassosciatedtyperequirements.我想这是有道理的,毕竟Array也是一个通用结构,因此编译器将无法确定SomeProtocol和的实际类型数组是通用的。所以我的问题是-我觉得我应该能够拥有一个符合SomeProto

ios - ViewController 不符合 Swift 中的 GMSAutoCompleteViewControllerDelegate 协议(protocol)

我收到错误:“ViewController”不符合以下代码中的协议(protocol)“GMSAutoCompleteViewControllerDelegate”。classMapViewController:UIViewController,CLLocationManagerDelegate,GMSMapViewDelegate,GMSAutocompleteViewControllerDelegate{...@IBActionfuncautocompleteClicked(sender:AnyObject){letautoCompletController=GMSAutocomp

swift - Swift 中的关键字协议(protocol)(大写 P)是什么

刚刚发现可以直接输入Protocol,而且它的Type和其他2种情况不同实际上你可以尝试初始化它并得到一条错误消息,提示某种东西但是Protocol在Swift中究竟做了什么? 最佳答案 Protocol是在Objective-C运行时定义的类代表一个Objective-C协议(protocol)。示例:letp=objc_getProtocol("NSObject")!print(p.dynamicType)//Output:"Protocol"objc_getProtocol声明为/***Returnsaspecifiedpro

ios - 协议(protocol)中的静态变量

我有一个协议(protocol)A,它有一个静态变量x。B是A的实现。在C类中,我传递了B的一个实例并将其分配给a。如何从中访问2(B类中x的值)?protocolA{staticvarx:Int{get}}classB:A{staticvarx:Int{return2}}classC{//instanceofBisassignedtoa.leta:Aprint(a.x)} 最佳答案 static变量属于类,而不是实例。您可以通过调用dynamicType来引用该类:print(a.dynamicType.x)

swift - 符合具有通用功能的协议(protocol)的变量

我有一个看起来像这样的协议(protocol):protocolMyProtocol{associatedtypeSpeedTypevarname:String{getset}funcforward(_:SpeedType)}我制作了2个符合此协议(protocol)的简单类:classA:MyProtocol{typealiasSpeedType=Doublevarname:Stringinit(name:String){self.name=name}funcforward(_s:Double){print("Moving\(s)km/h")}}classB:MyProtocol{t

swift - 如何使用私有(private)集扩展协议(protocol)?

我正在编写一个带有只读标签的协议(protocol)。我想扩展它并给它一个默认实现,其中符合类型是UITextView。代码:protocolCountingView{varkeyboardLabel:UILabel{get}}extensionCountingViewwhereSelf:UITextView{varkeyboardLabel:UILabel{get{letlabel=UILabel()label.textColor=UIColor.whitelabel.translatesAutoresizingMaskIntoConstraints=falsereturnlabel