草庐IT

Super_VLAN

全部标签

ios - 如何在 Swift 的闭包中调用 super

我想将一个func链接到superimpl,如下所示classBaseClass{funcmyFunc(){//dosomething}}classMyClass:BaseClass{overridefuncmyFunc(){self.myOtherFunc(completionHandler:{super.myFunc()//error:'super'memberscannotbereferencedinanon-classtype})}...}编译错误其实很清楚的告诉了我原因:闭包不是类类型,是不允许的。寻找任何建议如何调用父类(superclass)中定义的方法?

ios - 构造其子类时无法访问 Swift 通用父类(super class)的 init

我有以下代码:classILProperty{varvalue:T?init(_value:T){self.value=value}}typealiasILStringProperty=ilStringPropertyclassilStringProperty:ILProperty{}letx=ILStringProperty("X")最后一行是编译错误:'ILStringProperty'cannotbeconstructedbecauseithasnoaccessibleinitializers如果我覆盖初始化:overrideinit(_value:String){super.i

class - 'self' 在 super.init 调用之前使用

我是swift的新手,我不明白如何初始化一个类。成功在类定义中被初始化为falseif(succeeded&&(time>1000)){errormessage+=";connectionslow"}时间初始化为time=data[3].toInt()数据在哪里vardata=split(raw_data){$0==","}而raw_data是一个字符串。类定义:classgeocodeObject:NSObject{init定义:init(lat:String,long:String,userstate:String){(没有任何类型的super初始化)完整的代码与切入方式:clas

inheritance - swift 子类*总是*必须调用 super.init()

如果我有一个swift子类:不需要访问self不需要访问self的任何属性我还需要在子类的init()方法中调用super.init()吗?*注意:这是一个不同于提问和回答的问题hereonSO因为上面1和2中列出的细节。 最佳答案 不,你不必。假设您有以下类(class)。classa{letname:Stringinit(){name="james"}}classb:a{lettitle:Stringoverrideinit(){title="supervisor"}}如果你用实例化一个变量让myVar=b()然后,overri

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

在UIViewController中,这段代码:publicoverridefuncsupportedInterfaceOrientations()->UIInterfaceOrientationMask{ifletmainController=self.mainViewController{returnmainController.supportedInterfaceOrientations}returnUIInterfaceOrientationMask.all}给出错误Methoddoesn'toverrideanymethodfromitssuperclass我使用的是Xcod

ios - 为什么/什么时候我们必须调用 super.ViewDidLoad?

每个人都告诉我“使用super.viewDidLoad()因为它就是那样”或者“我一直都是这样做的,所以保持它”,“如果你不调用super是错误的”等等。overridefuncviewDidLoad(){super.viewDidLoad()//otherstuffgoeshere}我只找到了一些关于Objective-C案例的主题,它们并不是很有启发性,但我是在Swift3中开发的,所以任何专家都可以给我一个很好的详细解释吗?这是一个很好的实践案例还是有任何隐藏的影响? 最佳答案 通常,为您覆盖的所有没有返回值的函数调用supe

ios - Swift - 必须调用父类(super class) SKSpriteNode 错误的指定初始值设定项

此代码在第一个XCode6Beta上运行,但在最新的Beta上无法运行并出现此类错误必须调用父类(superclass)SKSpriteNode的指定初始化程序:importSpriteKitclassCreature:SKSpriteNode{varisAlive:Bool=false{didSet{self.hidden=!isAlive}}varlivingNeighbours:Int=0init(){//throws:mustcalladesignatedinitializerofthesuperclassSKSpriteNodesuper.init(imageNamed:"b

class - 为什么 Swift 初始化器不能在它们的父类(super class)上调用便利初始化器?

考虑这两个类:classA{varx:Intinit(x:Int){self.x=x}convenienceinit(){self.init(x:0)}}classB:A{init(){super.init()//Error:Mustcalladesignatedinitializerofthesuperclass'A'}}我不明白为什么不允许这样做。最终,每个类的指定初始值设定项都会用它们需要的任何值调用,所以为什么我需要通过为指定默认值在B的init中重复自己x再次,当A中的便利init可以正常工作时? 最佳答案 这是Swift

swift - 在 Swift 中覆盖不同类型的父类(super class)属性

在Swift中,有人可以解释如何使用从原始属性子类化的另一个对象覆盖父类(superclass)的属性吗?举个简单的例子:classChassis{}classRacingChassis:Chassis{}classCar{letchassis=Chassis()}classRaceCar:Car{overrideletchassis=RacingChassis()//Errorhere}这给出了错误:Cannotoverridewithastoredproperty'chassis'如果我将底盘改为“var”,则会出现错误:Cannotoverridemutableproperty'

c# - 有人可以解释 <? super T> 意味着什么时候应该使用它,这个结构应该如何与 <T> 和 <?延伸 T>?

我使用泛型很长时间了,但我从未使用过像List这样的结构.这是什么意思?如何使用它?删除后效果如何?我也想知道:它是泛型编程(模板编程?)中的标准,还是只是Java的“发明”?例如,c#是否允许类似的构造? 最佳答案 当您想要将一个集合中的项目消耗到另一个集合中时,将使用此构造。例如。您有一个通用的Stack并且您想要添加一个popAll方法,该方法将Collection作为参数,并将堆栈中的所有项目弹出到其中。按照常识,这段代码应该是合法的:StacknumberStack=newStack();Collectionobjects