草庐IT

Swift:类型不符合协议(protocol)

protocolA{}protocolB{vara:A{get}}structStructA:A{}structStructB{vara:StructA}extensionStructB:B{}这会产生错误:Type'StructB'doesnotconformtoprotocol'B'StructA已经符合协议(protocol)A,StructB的属性a返回StructA类型。这似乎是一个符合协议(protocol)B的类型。但为什么呢?Xcode版本7.3,Swift版本为2.2 最佳答案 为了更好地说明您当前代码的问题,假设

swift - 如何使具有可选属性的自定义类符合 "hashable"协议(protocol)

假设我有一个基类“Person”,我想将其添加到一个集合(列表)中,因此需要符合Hashable和Equatable:classPerson:Equatable,Hashable{letfirstName:StringletlastName:Stringvarnickname:String?letdateOfBirth:NSDatevarhashValue:Int{ifletnickname=nickname{returnfirstName.hashValue^lastName.hashValue^nickname.hashValue^dateOfBirth.hashValue}els

ios - Swift:通用类型符合协议(protocol)

我对通用类型有一些疑问。我想检查泛型类型是否符合某些协议(protocol)并在传递给另一个泛型函数之后。例如我有功能:funcrequestSignal(target:Api)->SignalProducer我想做这样的事情:funcrequest(target:Api,withObjectTypetype:T.Type){ifletmappableType=typeas?Mappable.Type{letrequestSignal:SignalProducer=self.requestSignal(target)}但如果我尝试通过T-它不符合Mappable。如果传递ma​​ppa

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

我在调用类(class)中的代表时遇到问题。我有一个SideBarTableController和SideBar.swift文件。它工作正常,直到我注销并重新登录。这是代码。它一直告诉我“ViewController”不符合协议(protocol)“SideBarDelegate”。我是编程新手,如果这含糊不清,请提前致歉。任何事情都会有所帮助,谢谢!importUIKitimportiAdclassViewController:UIViewController,SideBarDelegate{-----Thisiswheretheerrorishappening@IBOutletva

ios - Swift - MultipeerConnectivity 类型不符合协议(protocol)

我正在尝试thistutorial代码有问题:classMPCManager:NSObject,MCSessionDelegate,MCNearbyServiceBrowserDelegate,MCNearbyServiceAdvertiserDelegate{我遇到了一个错误:Type'MPCManager'doesnotcomformtoprotocol'MCSessionDelegate'Type'MPCManager'doesnotcomformtoprotocol'MCNearbyServiceBrowserDelegate'Type'MPCManager'doesnotco

swift - 扩展 Encodable(或 Codable)的协议(protocol)不符合它

我有2个协议(protocol),Filters和Parameters,它们都扩展了EncodableprotocolFilters:Encodable{varpage:Int{get}}protocolParameters:Encodable{vartype:String{get}varfilters:Filters{get}}我创建符合这些协议(protocol)的结构,因此……structBankAccountFilters:Filters{varpage:IntvarisWithdrawal:Bool}structBankAccountParamters:Parameters{

swift - 需要通过使用需求的特定子类(或符合它的类型)来满足 Swift 协议(protocol)需求

我有一个我创建的协议(protocol)(在Swift4.2中),它的要求之一是一个与协议(protocol)本身类型相同的属性。例如,我有一个这样定义的协议(protocol):protocolA{vara:A?{getset}}我有几个符合这个协议(protocol)的模型:classModel1:A{vara:A?}classModel2:A{vara:A?}对于我的一个模型,我需要通过更具体地定义变量a的属性(即具有协议(protocol)类型的变量)来满足协议(protocol)要求。因此,例如我可能希望将Model2实现为:classModel2:A{vara:Model1

swift - 类型不符合协议(protocol) 'AVCaptureFileOutputRecordingDelegate'

我正在尝试使用AVCaptureMovieFileOutput.startRecordingToOutputFileURL将音频录制到文件中,该函数的语法要求类型为“AVCaptureFileOutputRecordingDelegate”的变量。我从该站点看到的所有帮助都说您需要使一个类成为AVCaptureFileOutputRecordingDelegate和NSObject的扩展。问题是,我总是得到错误:Type'AVRecordDevices'doesnotconformtoprotocol'AVCaptureFileOutputRecordingDelegate'我该如何解

swift - @EnvironmentObject 符合协议(protocol): Xcode not compiling

我正在玩SwiftUI,想抽象一个@EnvironmentObject。目标是从生产BindableObject切换到假的(测试/本地工作......)首先我只是声明了一个协议(protocol):protocolFetcherInterface:BindableObject{associatedtypeTvardidChange:PassthroughSubject{getset}varvalues:[T]{getset}}然后我可以写一个符合FetcherInterface的网络根类:openclassNetworkFetcher:FetcherInterface{publicva

ios - 扩展符合 NSFetchRequestResult 的协议(protocol)

我正在将我的代码迁移到Swift3,但我遇到了一个我不能100%确定的问题。自WWDC2016起,CoreData团队更新了他们的框架,使其对泛型更加友好,新的增强型NSFetchRequest现在返回符合NSFetchRequestResult的对象。所以在下面的代码中,我的基本协议(protocol)符合上述NSFetchRequestResult协议(protocol),并且在其子协议(protocol)ManagedObjectFetchable的扩展中,我想返回获取对象符合类型:importCoreData@objcprotocolManagedObjectType:clas