草庐IT

custom-protocol

全部标签

Swift:使用符合相同协议(protocol)的嵌套枚举案例的代码更少

我尝试在以下场景中编写更少的代码:我有这个Queryable协议(protocol)和一个Parameter枚举:protocolQueryable{varurlQuery:URLQueryItem{get}}enumPaginationParameter:Queryable{casepage(Int)casepageSize(Int)varqueryItem:URLQueryItem{switchself{case.page(letpage):returnURLQueryItem(name:"page",value:page.description)case.pageSize(let

swift - 在运行时从 protocol.Type 引用动态实例化

我之前在非常微小的细节,以便真正破解它。swiftprogramtointerface您可能会提示或否决这个问题不完整,但事情就是这样,它基于设计模式,所以如果您不熟悉设计模式或哲学“编程接口(interface)而不是实现”然后不要提示或否决投票。寻找可以破解它的SWIFT专家。祝一切顺利publicprotocolIAnimal{init()funcspeak()}classTest{funcinstantiateAndCallSpeak(animal:IAnimal.Type){//usetheanimalvariabletoinstantiateandcallspeak-//n

ios - MVC : Where do I place custom UICollectionCell

我是移动领域开发的新手,我对我的项目有一个架构问题:自定义UICollectionViewCell的正确位置在哪里?本能地,我会把它放在(V)view下。编辑我会这样使用它:funccollectionView(collectionView:UICollectionView,cellForItemAtIndexPathindexPath:NSIndexPath)->UICollectionViewCell{varcustomCell:CustomCell=collectionView.dequeueReusableCellWithReuseIdentifier(CustomCell.i

arrays - Swift - 将协议(protocol)数组向上转换为 super 协议(protocol)数组会导致错误

在Swift中,我注意到我可以将符合名为SubProtocol的协议(protocol)的对象向上转换为另一个名为SuperProtocol的协议(protocol),它是子协议(protocol)。但是我不能对协议(protocol)数组做同样的事情。这是我在Playground中运行的示例代码:protocolSuperProtocol{}protocolSubProtocol:SuperProtocol{}classMyObject:SubProtocol{}letvalue1:SubProtocol=MyObject()letvalue2:SuperProtocol=value

swift - 将结构数组分配给协议(protocol)数组

假设我有以下内容:protocolMyProtocol{}structMyStruct:MyProtocol{}vars1=MyStruct()vars2=MyStruct()vars3=MyStruct()varstructArray=[s1,s2,s3]当我尝试将这个结构数组分配给协议(protocol)数组时(structArray中的每个结构都符合):varprotocolArray:[MyProtocol]=structArray我收到此错误:无法将类型为“[MyStruct]”的数组转换为指定类型“[MyProtocol]”我希望因为数组中的每个对象都符合协议(protoc

objective-c - Throwing 方法不能是@objc 协议(protocol)的成员,因为它返回类型为 'Bool' 的值

我收到以下错误:Throwingmethodcannotbeamemberofan@objcprotocolbecauseitreturnsavalueoftype'Bool';return'Void'oratypethatbridgestoanObjective-Cclass定义Swift协议(protocol)时也需要桥接到Objective-C:@objcpublicprotocolSaving{funcsave()throws->Bool}是否有其他方法可以定义返回Bool的Swift方法,可能会抛出错误并与Objetive-C兼容? 最佳答案

swift - 在 swift 中,如何返回符合协议(protocol)的相同类型的对象

我有以下协议(protocol)protocolJSONInitializable{staticfuncinitialize(fromJSON:NSDictionary)throws->Self?}现在我试图让该函数返回任何符合协议(protocol)的类。IE。如果我有符合协议(protocol)的Foo类,我想从该方法返回一个Foo对象。我该怎么做?extensionFoo:JSONInitializable{staticfuncinitialize(fromJSON:NSDictionary)throws->Foo?{}}我得到错误:Method'initialize'innon

Swift AnyObject - 将协议(protocol)数组向下转换为 [AnyObject]

如何将协议(protocol)实例数组向下转换为AnyObject?我在下面的代码示例中尝试了一些更合理的想法。protocolNameable:class{varname:String{get}}classPerson:Nameable{varname:Stringinit(name:String){self.name=name}}classExample{funcsetArray(array:[AnyObject]?,forKey:String){print("helloworld")}}varpersonOne=Person(name:"Evan")varpersonTwo=Pe

swift - 如何符合声明类型协议(protocol)属性的协议(protocol)?

我正在尝试创建一个协议(protocol)和几个符合它的类。该协议(protocol)有一个符合另一个协议(protocol)的属性,因此每个类都需要有一个匹配的属性。这是(类似的)我目前正在尝试的:protocolEdible{funceat()}classApple:Edible{funceat(){print("Crunch")}}classBanana:Edible{funceat(){print("Homph")}}protocolDelicious{funcconsume()varfruit:Edible?{getset}}classToffeeApple:Deliciou

iOS swift : Formatting a custom Currency Number

用逗号分隔符格式化大数。已解决(代码已更新且完全可用)晚上,我有一个来自Double的类型别名Currency。我想用千位之间的逗号打印它。这是我做的:importFoundationtypealiasCurrency=DoubleextensionCurrency{varcredit:Double{returnself}varusd:Double{returnself*0.62}funcdescription()->String{letprice=selfasNSNumberletformatter=NumberFormatter()formatter.numberStyle=.cu