草庐IT

不符合

全部标签

Swift:符合协议(protocol)的AnyClass变量

我有一个静态函数,我想在一个符合协议(protocol)的类上调用。protocolP{staticfuncf();}classC:P{staticfuncf(){}}有没有办法将C.self存储为符合协议(protocol)类型的变量?下面不编译,但这是我理想中尝试做的事情:leta:AnyClass=C.self;a.f(); 最佳答案 您尝试使用C.self存储的对象类型是C.Type。类型C符合协议(protocol)P如果要通过确保对象符合P来存储对象,请使用P.Type作为类型。例子:letmyObject:P.Type

属性符合协议(protocol)的 Swift 协议(protocol)扩展

我这样声明了一个协议(protocol)protocolJSONConnection{varrequest:NSURLRequest{getset}varsession:NSURLSession{getset}varjsonRootObject:JSONSerializable?{getset}}这里的JSONSerializable不是实际类型,它是我声明的另一个协议(protocol):protocolJSONSerializable{funcreadFromJSON(json:JSON)throws}所以,事实上,这个JSONConnection协议(protocol)需要一个名

ios - 迭代弱引用数组,其中对象符合 Swift 中的协议(protocol)

我想将对象存储在一个数组中,其中对象是弱的,并且符合一个协议(protocol)。但是当我尝试循环它时,出现编译器错误:publicclassWeak{publicweakvarvalue:T?publicinit(value:T){self.value=value}}publicprotocolClassWithReloadFRC:class{funcreloadFRC()}publicvarobjectWithReloadFRC=[Weak]()forowrfrcinobjectWithReloadFRC{//IfIcommentthislinehere,itwillabletoc

ios - swift 函数和闭包可以符合 Hashable 吗?

假设我想要一个Set函数或闭包。以下是我的处理方式:typealiasHandlerX=()->()staticvarhandlersX=Set()这会产生以下编译器错误:Type'HandlerX'(aka'()->()')doesnotconformtoprotocol'Hashable'这是死胡同吗? 最佳答案 是的,这是一条死胡同。Hashable不是你真正的问题;无法确定两个闭包是否相等(这是Hashable的基本要求)。 关于ios-swift函数和闭包可以符合Hashabl

swift - 使 String.CharacterView.Index 符合 Strideable : fatal error when using stride(to:by:): "cannot increment endIndex "

问题:当尝试通过例如跨越String.CharacterView.Index索引时2的一大步extensionString.CharacterView.Index:Strideable{}letstr="01234"for_instr.startIndex.stride(to:str.endIndex,by:2){}//fatalerror我收到以下运行时异常fatalerror:cannotincrementendIndex但是,仅在创建上面的StrideTo时,(letfoo=str.startIndex.stride(to:str.endIndex,by:2))不会产生错误,仅在

swift - 通过符合 Swift 2 中的协议(protocol)扩展类型化数组

我想扩展一个类型化数组Array使其符合协议(protocol)SomeProtocol.现在我知道您可以像下面这样扩展类型化数组:extensionArraywhereElement:SomeType{...}您还可以扩展对象以符合如下协议(protocol):extensionArray:SomeProtocol{...}但我无法弄清楚让类型化数组符合协议(protocol)的正确语法是什么,例如:extension(ArraywhereElement:SomeType):SomeProtocol{...}任何Swift2专家都知道如何做到这一点? 最佳

arrays - Swift 3 无法将符合协议(protocol)的对象数组附加到该协议(protocol)的集合

下面我粘贴了代码,您应该能够将其粘贴到Swift3playground中并查看错误。我定义了一个协议(protocol)并创建了一个该类型的空数组。然后我有一个符合协议(protocol)的类,我尝试将其附加到数组,但出现以下错误。protocolMyProtocol{vartext:String{get}}classMyClass:MyProtocol{vartext="Hello"}varcollection=[MyProtocol]()varmyClassCollection=[MyClass(),MyClass()]collection.append(myClassCollec

ios - 类型 'Int32' 不符合协议(protocol) 'AnyObject' Swift?

我有一个模型,NSObject的子类,如下所示。classConfigDao:NSObject{varcategoriesVer:Int32=Int32()varfireBallIP:String=String()varfireBallPort:Int32=Int32()varisAppManagerAvailable:Bool=Bool()vartimePerQuestion:String=String()varisFireballAvailable:Bool=Bool()}我已经下载了NSMutableData并使用NSJSONSerialization从中生成了JSON。我的代码

ios - NSLayoutContraint 中的 UIView 不符合 swift 中的 AnyObject

我找到了这个问题和答案here但是我得到了错误Type'UIView!'doesnotconformtoprotocol'AnyObject'对于...@IBOutletvarmainView:UIView!@IBOutletweakvarcontentView:UIView!...NSLayoutConstraint(item:self.contentView,...`取消引用View对象是否发生了什么事? 最佳答案 在复制粘贴并尝试将一些Objective-C代码修改到我的swift项目中后,我遇到了同样的错误。我意识到我将re

ios - 类型 'x' 不符合协议(protocol) 'UIPickerViewDataSource'

importUIKitclassFourthViewController:UIViewController,UIPickerViewDelegate,UIPickerViewDataSource{@IBOutletweakvarpicker:UIPickerView!varpickerData:[String]=[String]()overridefuncviewDidLoad(){super.viewDidLoad()//Doanyadditionalsetupafterloadingtheview.self.picker.delegate=selfself.picker.dataS