草庐IT

protocol-inheritance

全部标签

inheritance - 是否可以将 Swift 泛型类函数返回类型限制为同一个类或子类?

我正在Swift中扩展一个基类(我无法控制的基类)。我想提供一个类函数来创建一个类型为子类的实例。需要通用函数。但是,像下面这样的实现不会返回预期的子类类型。classCalculator{funcshowKind(){println("regular")}}classScientificCalculator:Calculator{letmodel:String="HP-15C"overridefuncshowKind(){println("scientific")}}extensionCalculator{classfunccreate()->T{letinstance=T()ret

ios - Swift:无法为协议(protocol)的属性赋值?

A类提供一个字符串值。B类本身有两个A类型的成员,并提供一个计算属性“v”来选择其中一个。classA{varvalue:Stringinit(value:String){self.value=value}}classB{varv1:A?varv2:A=A(value:"2")privatevarv:A{returnv1??v2}varvalue:String{get{returnv.value}set{v.value=newValue}}}这段代码很简单而且有效。由于A和B都有一个成员“值”,因此我将其设为如下协议(protocol):protocolValueProvider{va

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

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

xcode - 类型 'CFStringRef' 不符合 Xcode 6.1 中的协议(protocol) 'Hashable'

在我的应用程序中,我有一个在Xcode6中工作的钥匙串(keychain)访问类,但现在在Xcode6.1中我遇到了一些错误,这是第一个错误:类型'CFStringRef'不符合协议(protocol)'Hashable':privateclassfuncupdateData(value:NSData,forKeykeyName:String)->Bool{letkeychainQueryDictionary:NSMutableDictionary=self.setupKeychainQueryDictionaryForKey(keyName)letupdateDictionary=[

ios - swift : Redundant conformance of Viewcontroller to protocol UIGestureRecognizerDelegate

我想添加两个框架SWRevealViewController和SLKTextViewController但我收到了这个奇怪的错误。我读到了这个错误,但它看起来很困惑。RedundantconformanceofViewcontrollertoprotocolUIGestureRecognizerDelegateclassViewcontroller:SLKTextViewController,SWRevealViewControllerDelegate,UIGestureRecognizerDelegate{//alotoffunctionsandcode}

ios - 无法在 Swift 中遵循 MKAnnotation 协议(protocol)

当我尝试遵循MKAnnotation协议(protocol)时,它抛出错误我的类不符合协议(protocol)MKAnnotation。我正在使用以下代码importMapKitimportFoundationclassMyAnnotation:NSObject,MKAnnotation{}同样的事情也可以用Objective-C实现。 最佳答案 您需要在调用中实现以下必需属性:classMyAnnotation:NSObject,MKAnnotation{varmyCoordinate:CLLocationCoordinate2D

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

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

ios - 协议(protocol)扩展不能满足 CLLocationManagerDelegate 一致性?

我正在尝试通过协议(protocol)扩展实现CLLocationManagerDelegate协议(protocol)要求,但位置管理器在协议(protocol)扩展中看不到它并且失败了。但是,当移入该类时,它使用相同的代码。这是我正在做的:classViewController:UIViewController,MyLocationProtocol{letlocationManager=CLLocationManager()overridefuncviewDidLoad(){super.viewDidLoad()locationManager.desiredAccuracy=kCL

ios - 如何定义一个符合协议(protocol)的对象数组?

给定:protocolMyProtocol{typealiasTvarabc:T{get}}还有一个实现MyProtocol的类:classXYZ:MyProtocol{typealiasT=SomeObjectvarabc:T{/*Implementation*/}}如何定义符合MyProtocol的对象数组?varlist=[MyProtocol]()给出(连同大量SourceKit崩溃)以下错误:Protocol'MyProtocol'canonlybeusedasagenericconstraintbecauseithasSelforassociatedtyperequirem

ios - Swift 中泛型类型的工厂(协议(protocol)和泛型)

我正在尝试创建一个实现协议(protocol)的通用类型工厂。问题是在适配器工厂的make方法中出现以下错误:Protocol'Adapter'canonlybeusedasagenericconstraintbecauseithasSelforassociatedtyperequirements.这是我现在正在做的一个例子:protocolAdapter{typealiasTstaticfuncmethod1(parameter:T)}finalclassAdapterFactory:NSObject{staticfuncmake(name:String="")->Adapter.T