草庐IT

inherited-constructors

全部标签

swift - : class that inherits SKSpriteNode with init,如何调用init(颜色:,大小:)

我使用形状制作游戏原型(prototype),在swift出现之前,spritekit非常棒。现在,当我尝试扩展SKSpriteNode并添加我的init函数时,我无法调用super.init(color,size)。我无法调用创建形状纹理的代码。我需要知道如何调用该init函数,或者如何创建形状纹理,以便我可以覆盖指定的init,然后使用我的形状纹理调用它。编辑:这是我正在做的确切代码,我在另一个SKSprite节点扩展类中做了几乎完全相同的事情:classTetrisCell:SKSpriteNode{letlength=10;convenienceinit(color:UICol

inheritance - 便利初始化覆盖

问题Override一个子类的便利初始值设定项,它会产生编译错误。详情我无法理解为什么Swift(v4.1)不允许我覆盖我的便捷初始化程序。阅读文档我发现这两条规则适用于我的问题:Rule1Ifyoursubclassdoesn’tdefineanydesignatedinitializers,itautomaticallyinheritsallofitssuperclassdesignatedinitializers.Rule2Ifyoursubclassprovidesanimplementationofallofitssuperclassdesignatedinitializer

inheritance - 理解swift语言中的去初始化和继承

假设我有两个类:基类和子类,如下所示:classBase{varname:String?init(){name="Thebaseclass"}deinit{println("callDeinitializationinbaseclass")name=nil}}classSub:Base{varsubName:String?init(){super.init()subName="Thesubclass"}deinit{println("callDeinitializationinsubclass")subName=nil//doesitreallycallsuper.deinit()?/

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

swift - "Cannot inherit from non-open class" swift

从Xcode8beta6开始,我现在在其定义模块之外收到编译错误“无法从非开放类(Class)继承”我继承的类是单独的Swift框架的一部分,但我的项目是为Xcode8beta5编译的。我需要更改什么才能让我的项目再次编译? 最佳答案 我自己找到了答案。在Swift3中,您现在可以将类标记为open而不是public这允许模块外部的文件子类化该类。只需将模块类中的public替换为open。引用here. 关于swift-"Cannotinheritfromnon-openclass"s

inheritance - Swift 语言中的抽象函数

我想用swift语言创建一个抽象函数。可能吗?classBaseClass{funcabstractFunction(){//HowdoIforcethisfunctiontobeoverridden?}}classSubClass:BaseClass{overridefuncabstractFunction(){//Override}} 最佳答案 Swift中没有抽象的概念(比如Objective-C),但你可以这样做:classBaseClass{funcabstractFunction(){preconditionFailur

c# - 不可变设计 : Dealing with Constructor Insanity

出于各种原因,我想开始在设计中使用更多不可变类型。目前,我正在处理一个现有类如下的项目:publicclassIssueRecord{//Therealclasshasmorereadablenames:)publicstringFoo{get;set;}publicstringBar{get;set;}publicintBaz{get;set;}publicstringProp{get;set;}publicstringProp2{get;set;}publicstringProp3{get;set;}publicstringProp4{get;set;}publicstringPr

c# - MVC4 Razor View header 中@model 和@inherit 的区别?

要使View成为强类型View,我们可以使用@model和@inherit。你能告诉我它们之间有什么区别吗?编辑:请参阅thisexample. 最佳答案 区别如下:如果你的View继承自WebViewPage那么你的模型指令指向T.也就是说,这两个是等价的@inheritsSystem.Web.Mvc.WebViewPage和@modelModelClass引用:http://weblogs.asp.net/scottgu/archive/2010/10/19/asp-net-mvc-3-new-model-directive-s

c# - 继承基类时如何避免错误 "Constructor on type ' MyType'not found”

我有一个VisualStudio2010Windows窗体应用程序,其中包含一个其他类将继承的窗体基类。基类的构造函数采用子类将传递给基类的参数。例子:publicpartialclassBaseForm:Form{publicBaseForm(intnumber){InitializeComponent();}}publicpartialclassChildForm:BaseForm{publicChildForm(intnumber):base(number){InitializeComponent();}}我遇到的问题是,当我尝试在VisualStudio的设计View模式下打开

c# - Initialize() vs Constructor() 方法,正确使用对象创建

我们都知道Constructor和用户定义的Initialize()方法之间的根本区别。我的问题集中在对象创建的最佳设计实践上。我们可以将所有Initialize()代码放入Constructor()中,反之亦然(将所有预热代码移至Initialize方法并调用此方法来自构造函数)。目前,在设计一个新类时,我在constructor()中创建了所有新实例,并将任何其他预热代码移至Initialize()方法中。您认为最佳的权衡点是什么? 最佳答案 我认为应该考虑多个方面:构造函数应该以一种处于可用状态的方式初始化对象。构造函数应该只