草庐IT

Super_VLAN

全部标签

swift - 如何强制重写方法在 Swift 中调用 super?

我有一个具有一些功能的抽象ViewController。一些ViewController将扩展抽象Controller并覆盖一些功能。当任何ViewController覆盖它们时,我需要强制执行一些函数来调用super. 最佳答案 我建议您将公共(public)方法设为final并公开空internal在抽象类中不执行任何操作但在公共(public)类中调用的方法final方法。像这样:classAbstractViewController{internalfuncwillDoStuff(){}internalfuncdidDoSt

ios - 从父类(super class)调用由子类实现的协议(protocol)方法

我有多个继承自基本TableViewController类的TableViewController类,如下所示:classBasicTableViewController:UITableViewController{}classSpecificTableViewController:BasicTableViewController{}classAnotherSpecificTableViewController:BasicTableViewController{}然后我创建了一个非常简单的协议(protocol)来为特定的ViewController类添加刷新功能,如下所示:@objc

ios - 如何从具有协议(protocol)一致性的父类(super class)调用子类方法

我正在创建swiftUI组件,它将为UIView和UICollectionViewCell提供一些功能。我想让定制变得容易。(这里的代码当然是一种简化)在下面的代码中,我将在layoutSubview中做一些艰苦的工作(我必须为每个自定义类覆盖layoutSubviews因为在扩展中我们可以't覆盖类方法),然后使用默认实现调用add方法,如果需要,应该很容易更改其行为。问题是创建SubClassView实例正确调用CustomView.layoutSubviews但是在这个方法中SomeProtocol.add从扩展调用而不是SubClassView.add。我知道这是Swift设计

Swift 子类的 init 必须在调用 super 之前设置所有属性,但是属性需要 super 的 init 先完成

我正在尝试编写两个Swift类,一个是另一个的子类,需要采用父类(superclass)的一个属性并使用它来配置自身。classBaseClass{letsomeValue:Doubleletsize:CGSizeinit(size:CGSize){self.size=sizeself.someValue=size.width/2.0//Doesn'treallymatterhowthisiscalculated}}classSubclass:BaseClass{letsomeNewValue:Doubleoverrideinit(size:CGSize){super.init(siz

ios - 声明 'subscribe' 不能覆盖多个父类(super class)声明 (ReSwift)

我在覆盖ReSwiftPod中的函数时遇到问题。我有以下模拟类(class):importFoundationimportQuickimportNimbleimportRxSwift@testableimportMainProject@testableimportReSwiftclassMockReSwiftStore:ReSwift.Store{vardispatchDidRun:Bool=falsevarsubscribeWasTriggered:Bool=falseinit(){letreducer:Reducer={_,_inMainState()}super.init(red

swift - 必须 swift 调用父类(super class) NSManagedObject 的指定初始化程序

我收到编译器消息:必须调用父类(superclass)NSManagedObject的指定初始化程序(swift)//-------------------------------------classabc:NSManagedObject{init(x:String,y:String){super.init()//变量声明在分机xxxx{....}如何初始化这个父类(superclass)? 最佳答案 指定的初始化程序是init(entityentity:NSEntityDescription,insertIntoManagedO

ios - 错误 : Use of 'self' in property access 'texture' before super. init 初始化自身

我是swift的新手,我正在尝试通过以下方式学习swift创建一个简单的纸牌游戏。我从视频中输入了完全相同的代码。但是xcode显示错误“在super.init初始化self之前在属性访问‘texture’中使用‘self’”感谢您的帮助!importSpriteKitclassCard:SKSpriteNode{varrank:Intvarsuit:StringvarimageNameUp:StringvartextureUp:SKTexturevartextureDown:SKTextureinit(rank:Int,suit:String,faceUp:Bool){self.ra

swift - 如何使父类(super class)中的方法创建子类对象?

classCar{funcupgrade()->Car{returnCar()}}classRacingCar:Car{}letracingCar=RacingCar()letupgradedRacingCar=racingCar.upgrade()//ideallyupgradedRacingCarshouldbeaRacingCar如果在子类上调用升级方法,如何创建RacingCar对象,没有在RacingCar中实现它? 最佳答案 像这样。如果是类方法:classCar{classfuncupgrade()->Self{ret

ios - Swift 错误 : "Cannot find interface declaration for ' SKScene', 的父类(super class)”

免责声明:我通读了关于SO的类似问题,找不到解决我的问题的方法。我想将SKScene的子类添加到以前未使用SpriteKit的项目中。该项目是ObjC和Swift的混合体。子类是用Swift编写的。我做了什么:通过转到项目->构建阶段->添加了SpriteKit.Framework将二进制文件与库链接。我创建了一个swift类并拥有它继承自SKScene。这是新类:importSpriteKitclassSnowScene:SKScene{}请注意,该类未被代码中的其他任何地方引用。当我编译我的应用程序时,我在标题中收到错误。错误发生在我的-Swift.h文件中,该文件自动导出了新类(

iphone - Swift 方法不会覆盖其父类(super class)中的任何方法

我是Swift的新手,我正在学习一些基本教程,但我似乎遇到了一些方法的问题,这些方法试图允许用户按回车键以最小化键盘或单击关闭键盘,键盘将消失了,我明白为什么我会收到这些错误,但不知道如何修复它,我觉得我正在使用的新版本的Swift可能已经发生了一些变化,因为他使用的是比我更旧的版本,任何人都可以请解释如何解决这两个错误?任何帮助将不胜感激,这是我的源代码:(第一个错误,“viewController”类型的值没有成员“text”,其次,touchesBegan方法没有覆盖其父类(superclass)中的任何方法)importUIKitclassViewController:UIVi