草庐IT

UIApplicationDelegate_Protocol

全部标签

swift - 强制子类快速实现协议(protocol)

如何强制子类实现父类中声明的协议(protocol)?我试过这个:protocolMyProtocol{varmyVar:String{get}}classParentClass:MyProtocol{varmyVar="parent"}classChildClass:ParentClass{}但我的子类不会强制我覆盖myVar。这可能吗?非常感谢,摩根 最佳答案 Swift没有这样的功能。您所能做的就是发出运行时错误。而且你必须使用computedproperty覆盖属性。像这样:protocolMyProtocol{varmyV

符合具有默认实现的协议(protocol)的类型的 Swift 最小实现

我正在尝试使我自己的类型符合CollectionType。通过Swift2.0中引入的协议(protocol)扩展,现在可以只实现所需实例方法的一个子集,同时自动实现所有其他方法。但是我需要提供的最小方法子集是什么? 最佳答案 似乎最低要求是实现Indexable协议(protocol)。这是一个例子,没有一个可以省略属性/方法而不会导致编译器错误:structMyCollectionType:CollectionType{varstartIndex:Int{return0}varendIndex:Int{return3}subsc

swift - 如何实现返回协变 Selfs 的协议(protocol)方法?

错误:非最终类(“Class”)无法满足协议(protocol)“Protocol”要求“instance”,因为它在非参数、非结果类型位置使用“Self”protocolProtocol{varinstance:Self{get}}classClass:Protocol{varinstance:Class{returnSubclass()}}classSubclass:Class{}以下是我在C#中表达我想要的内容的方式。(据我所知,C#没有办法强制通用参数“Self”实际上是我们从Swift中知道的Self,但它作为文档足以让我做正确的事情。)interfaceProtocolwh

Swift 协议(protocol)函数 : returning the same type of conforming class

我想知道是否可以在Swift中完成类似java(或c++)的事情:我有一个协议(protocol):protocolProt1{funcreturnMyself()->Prot1}并且一个类符合协议(protocol)Prot1。我可以强制函数returnMyself()的返回类型与下面的类的类型相同吗?classMyClass:Prot1{publicfuncreturnMyself()->MyClass{returnself}}这可能吗? 最佳答案 只需在协议(protocol)中使用SelfprotocolProt1{func

ios - 如何在 Swift 中使用协议(protocol)公开 Objective-C 对象的私有(private)类方法?

考虑UIColor上的两个私有(private)方法:返回颜色RGB字符串的实例方法styleString返回破坏性按钮使用的红色的类方法_systemDestructiveTintColor。UIColor.hprivateheaderforreference对于实例方法,我可以创建一个@objc协议(protocol)并使用unsafeBitCast公开私有(private)方法:@objcprotocolUIColorPrivate{funcstyleString()->UIColor}letwhite=UIColor.whiteColor()letwhitePrivate=un

swift - 可编码 : does not conform to protocol 'Decodable'

无法理解为什么我的类不符合Codable请注意,在我的例子中,我不需要实现方法encode和decode。publicclassLCLAdvantagePlusJackpotCache:Codable{publiclettoken:Stringpublicletamount:NSNumberpublicletmember:Boolpublicinit(token:String,amount:NSNumber,member:Bool){self.token=tokenself.amount=amountself.member=member}enumCodingKeys:String,Co

swift - 在 Swift 2 中声明符合协议(protocol)的 UIView 类型的变量

我需要声明一个UIView类型的变量,它也符合MyProtocol:protocolMyProtocol:class{funcfoobar()}classMyClass{varmyView:UIView!//Error:Cannotspecializenon-generictype'UIView'}但是我收到编译器错误:无法专门化非泛型类型“UIView”。我需要从UIView和MyProtocol访问变量的方法。支持这些要求的正确变量声明是什么?如果有任何不同,只有UIView子类会实现该协议(protocol)。目前我通过扩展添加协议(protocol)一致性。我找到了这个答案:h

ios - .h 中没有名为 'ReformerProtocol' 的类型或协议(protocol),但 .m 工作正常

我有一个swift协议(protocol):importFoundation@objcprotocolReformerProtocol{funcreformDataWithManager(apiManager:FSAPIClient)->NSDictionary}在我的ObjectiveC.m中,如果我定义如下方法:-(NSDictionary*)fetchDataWithReformer:(id)reformer{}它工作正常,但如果我在.h文件中声明此方法:-(NSDictionary*)fetchDataWithReformer:(id)reformer;错误是:Notypeor

ios - 类型 'String' 不符合协议(protocol) 'SequenceType' - Swift 2.0

我试图在Swift2.0中反转字符串,但在字符串ifself上出现错误。funcreverseString(string:String)->String{varbuffer=""forcharacterinstring{buffer.insert(character,atIndex:buffer.startIndex)}returnbuffer}错误:Type'String'doesnotconformtoprotocol'SequenceType' 最佳答案 简单的解决方案:funcreverseString(string:Str

ios - 如何声明具有符合协议(protocol)的具体返回类型的函数?

编辑:这个问题是在swift添加some关键字之前写的,使其过时在objective-c中我可以声明一个带有返回类型的方法:-(UIView*)someMethod;在此示例中,该方法返回一个符合协议(protocol)MyProtocol的UIView。我想在swift中做类似的事情:protocolMyProtocol{varsomeProperty:Int{getset}}protocolMyDelegate{funcsomeMethod()->UIView:MyProtocol//theviewshouldconformtotheprotocol-Idon'tcarewhatk