草庐IT

UIApplicationDelegate_Protocol

全部标签

swift - 实现接受并返回 Self 的协议(protocol)静态方法( swift )

给定一个类似这样的协议(protocol):protocolThing{staticfunc*(lhs:Float,rhs:Self)->Self}如何实现盒子类?classThingBox:Thing{varthing:Trequiredinit(thing:T){self.thing=thing}staticfunc*(lhs:Float,rhs:Self)->Self{returnSelf(thing:lhs*rhs.thing)}}编译器提示Self不能在方法类型中使用,但事实是ThingBox是可继承的意味着使用ThingBox不合适。如果不强制它是final就不可能写这个类

swift - `RLMArray` 不符合协议(protocol) 'Encodable'

我想做的事:使用JSONDecoder(),我将json转换为Realm对象。然后我将这个对象保存到Realm数据库中。问题:RLMArray不应用Codable协议(protocol)。我可以遵守Decodable协议(protocol),但Codable我不能。错误信息:类型“Person”不符合协议(protocol)“Encodable”代码:publicclassHobby:Object,Codable{@objcdynamicvartitle:String?@objcdynamicvarcategory:String?}publicclassPerson:Object,Co

json - swift 4 : how to implement codable protocol for json array of different types

有人可以启发我如何为以下多种类型的json数组实现codableprotocol到swift结构吗?在下面的json素材数组中,可以是反射对象、视频对象或笔记对象。{"materials":[{"reflection":{"title":"3-2-1reflection","description":"pleasereflectaftertoday","questions":[{"question":"question1","answer":"answer1","answerImageUrl":"http://xxx"},{"question":"question1","answer"

ios - Swift 中的协议(protocol)设计

我有一个ViewController类,我想在多个屏幕上重复使用,在不同的屏幕上我想提供不同的数据源。我的VC看起来像这样:classSpotViewController:UIViewController{vardataSource:SpotDataSource!}现在我想要两个不同的数据源类classPersonalSpotDataSource{}classExploreSpotDataSource{}现在我想创建某种共享协议(protocol),使上述两个类实现以下属性varspots:[Spot]vartitle:String然后我希望该共享构造符合UITableViewData

ios - 以关联类型作为属性的协议(protocol)

是否可以使用关联类型的协议(protocol)作为属性来匹配某些约束?这是我正在努力解决的一个例子:protocolAnimal{associatedtypeItemfuncdoSomething(withitem:Item)}classOwner{varitem:Item//IhavetobesurethatAnimal.Item==Itemvaranimal:Animal} 最佳答案 具有关联类型的协议(protocol)不能用作属性的类型。您可以尝试限制Owner的通用类型,而不是限制animal的类型:classOwnerw

ios - 具有所需初始化方法的 Swift 类型删除协议(protocol)

我有符合Equatable的协议(protocol)protocolTestProtocol:Equatable{varid:Int{get}}func==(lhs:T,rhs:T)->Bool{returnlhs.id==rhs.id}为了有机会存储TestProtocol值,我们应该使用类型删除。classAnyTestProtocol:TestProtocol{varid:Int{returnitem.id}privateletitem:Tinit(_testProtocol:T){self.item=testProtocol}}而且,毕竟我们可以像这样使用它结构测试结构:测试协

ios - UICollectionView 协议(protocol)问题

我有一个viewController,它通过一个操作按钮显示一个“CollectionViewController”。@objcfuncaddPhoto(){letlayout=UICollectionViewFlowLayout()letphotoController=UINavigationController(rootViewController:PhotoController(collectionViewLayout:layout))present(photoController,animated:true,completion:nil)}在“PhotoController”中

ios - Swift 符合协议(protocol)子类

在我的应用程序中,我有多个依赖模型的UIView子类。每个类都采用“Restorable”协议(protocol),该协议(protocol)包含模型的父类(superclass)。每个子模型都描述了特定的UIView不常用属性。//Super-modelpublicprotocolStoryItem{varid:Int64?{get}}//ParentprotocolpublicprotocolRestorable:AnyObject{varstoryItem:StoryItem?{getset}}//SpecificprotocolpublicstructTextItem:Stor

ios - 委托(delegate)协议(protocol)的实现方法在哪里调用?

我是swift和OOP编程的新手,我正在尝试了解使用UIKit时的委托(delegate)模式。我想我理解移交一些类职责的概念:有一个(例如)UITextField类的textField实例,它在ViewController:classViewController:UIViewController{lettextField=UITextField(frame:CGRect(...))overridefuncviewDidLoad(){textField.contentVerticalAlignment=.centertextField.borderStyle=.roundedRectt

swift - swift 中的 Sink 协议(protocol)是什么?

Swiftheader的Sink协议(protocol)定义为protocolSink{typealiasElementfuncput(x:Element)}什么是Sink协议(protocol),它应该用于Swift和Cocoa设计模式?我唯一能说的实现这个协议(protocol)的是structIntEncoder:Sink{varasInt:UInt64varshift:UInt64funcput(x:CodeUnit)} 最佳答案 接收器(如“厨房水槽”)代表生产者/消费者对的消费者端。它是一个抽象接口(interface)