草庐IT

UIApplicationDelegate_Protocol

全部标签

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

我认为这里的类型关系相当简单,但我遗漏了错误的原因。错误是:“类型‘T’不符合协议(protocol)‘EntityType’”(在ThingManager)://protocolEntityType{typealiasIdentifiervaridentifier:Identifier{get}}classEntityWithStringIdentifier:EntityType{varidentifier:Stringinit(i:String){self.identifier=i}}classThing:EntityWithStringIdentifier{}//protocol

协议(protocol)中的 Swift 协议(protocol)属性 - 候选人具有不匹配的类型

我有一个协议(protocol)(ProtocolA),其中包含符合第二个协议(protocol)(ProtocolB)的单个属性。publicprotocolProtocolA{varprop:ProtocolB?{get}}publicprotocolProtocolB{}我正在尝试声明两个将实现这些的类:privateclassClassA:ProtocolA{varprop:ClassB?}privateclassClassB:ProtocolB{}但是我得到一个错误:Type'ClassA'doesnotconformtoprotocol'ProtocolA'Protocol

arrays - 无法将协议(protocol)数组分配给通用数组

下面有一些代码,有些会给出编译时错误,有些则不会。是否存在错误或我是否在这里遗漏了有关泛型的某些信息?1)不起作用:classDataSource:NSObject{vardataObjects:[DataType]init(dataObjects:[T]){self.dataObjects=dataObjects//Cannotassignvalueoftype[T]totype[DataType]}}但这行得通:classDataSource:NSObject{vardataObjects:[DataType]init(dataObjects:[T]){self.dataObjec

ios - 没有名为 AKNode/AKToggleable 的类型或协议(protocol)

我正在尝试扩展AKNode和AKToggelable,但此错误出现在Project-Swift.h文件中有什么方法可以做到这一点?我的类(class)是classAKCustom:AKNode,AKToggleable,AKComponent,AKInput{publictypealiasAKAudioUnitType=AKBalancerDeplikeAudioUnitpublicstaticletComponentDescription=AudioComponentDescription(mixer:"dpba")privatevarinternalAU:AKAudioUnitTy

ios - 对象符合 Swift 协议(protocol)

任何人都可以帮助找到如何在Swift中编写这个NSMutableDictionary*object=[FBGraphObjectopenGraphObjectForPost];上面的ObjectiveC代码说objectNSMutableDictionary符合协议(protocol)FBOpenGraphObject。我试图像这样swift地表示这一点varobject:FBOpenGraphObject,Dictionary=FBGraphObject.openGraphActionForPost()//specifythatthisOpenGraphobjectwillbepos

Swift 协议(protocol)强制 Equatable 协议(protocol)

我已经定义了2个协议(protocol)。我需要第一个(NameProtocol)来执行Equatable协议(protocol)。而另一个类(BuilderProtocol)有一个返回第一个类(NameProtocol)的方法。publicprotocolNameProtocol:Equatable{varname:String{get}}publicprotocolBuilderProtocol{funcbuild()->NameProtocol?//Compilererrorinit()}编译错误:“协议(protocol)'NameProtocol'只能用作泛型约束,因为它具有

swift - 快速实现带有内部类的公共(public)协议(protocol)

所以我正在编写一个Swift框架,我想只通过一个协议(protocol)公开一些对象。例如:publicprotocolThing:class{varx:Int{get}}我想隐藏我的实现细节,所以我制作了一个内部类:internalclassThingImpl:Thing{publicprivate(set)varx:Int=0}并通过工厂方法出售新的Things:publicfuncnewThing()->Thing{returnThingImpl()}我不明白的是为什么编译器警告我关于在ThingImpl中制作varxpublic并鼓励我在内部声明它.尽管有警告,一切都运行良好,

Swift 3,协议(protocol)中的函数返回符合协议(protocol)的类的对象

我已经阅读了很多关于类和协议(protocol)的文章,但仍然没有找到解决方案。可能是我没有完全理解它们。所以有一个简单的协议(protocol)(删除了一些与问题无关的部分):protocolInfoObject:NSObjectProtocol{varstatusImage:UIImage?{get}funcviewControllerForItemIndex(_index:Int?)->UIViewController?}但我希望函数viewControllerForItemIndex不仅返回类型为UIViewController?的对象,而且它应该符合协议(protocol)I

xcode - 你怎么知道一个 Swift 类是从另一个类继承还是符合协议(protocol)?

例如,如果我们有一个继承自Bar类的Foo类,并且符合Baz协议(protocol):classBar{}protocolBaz{}Foo类:Bar、Baz{}如果我们事先不知道Bar是一个类而Baz是一个协议(protocol)怎么办(例如,当阅读别人的代码时)。在这种情况下,由于在classFoo:之后有多个声明,它可能很清楚。在Swift中,协议(protocol)一致性声明必须在继承子句中的父类(superclass)声明之后。另一方面,这也可以是一个符合多种协议(protocol)的没有继承的类。还有如果继承子句中只有一个声明怎么办?classFoo:Bar{}或者:clas

types - 在 Swift 中实现闭包协议(protocol)

我想在我的Swift项目中创建一些函数,这些函数可以接受对象或返回该对象类型的闭包。我当然可以在每个地方定义具有多个签名的相同函数,但那太冗长了。我还希望能够创建这些对象/对象返回闭包的类型安全列表,但如果没有一些通用类型来描述这两者,我就无法做到这一点。这就是我想做的typealiasStringClosure=()->StringprotocolStringable{functoStringClosure()->StringClosure}extensionString:Stringable{functoStringClosure()->StringClosure{return{r