问题标签 [designated-initializer]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ios - Swift - 必须调用超类 SKSpriteNode 错误的指定初始化程序
此代码在第一个 XCode 6 Beta 上工作,但在最新的 Beta 上它不起作用并给出这样的错误Must call a designated initializer of the superclass SKSpriteNode
:
这就是这个类的初始化方式:
我坚持下去..最简单的解决方法是什么?
c - C99 结构体指定初始化器和其他值
我知道在 C99 中,您可以使用成员名称初始化结构的成员,如下所示:
所以以下是有效的:
据说未初始化的成员将被设置为0
. 所以
这里i
将设置为0
但是,对于以下内容:
i
仍然初始化为0。如果我们这样做复合初始化是什么原因。
objective-c - 在 Xcode 6 中关闭指定的初始化程序检查
我收到编译错误:
经过编译检查的指定初始化程序可能是一件好事,但如果我现在不想处理它,我该如何关闭它呢?
swift - 添加 NSCoding 作为扩展
我想扩展一个框架类(我不想直接编辑源代码),并使其符合NSCoding
.
基本上,这是我所处情况的简化:
问题是init(coder aDecoder: NSCoder)
,根据头文件,一个designated initializer
(这不是很奇怪吗?不应该是一个convenience initializer
吗?)。但是,文档说扩展不能添加新的指定初始化程序。
我的英语不是很完美,也许我错过了什么……或者真的不可能吗?
objective-c - 是什么导致 UIBarButtonItem 的初始化程序继承问题?
我正在尝试创建一个简单的 UIBarButtonItem Swift 子类:
但是当我尝试实例化它时:
代码编译正确,但在运行时失败:
我不明白为什么会在这种情况下发生这种情况,或者一般是什么原理导致了这个问题。init(text)
初始化程序应该直接委托给超init(customView)
类。为什么要init()
调用呢?它不应该参与。
谁能解释发生了什么?当我尝试继承其他 UIKit 类时,出现了类似的问题
objective-c - NSWindowController 初始化警告
我正在开发一个基于文档的应用程序。我正在为文档窗口使用专用的窗口控制器,并调用该-[NSDocument makeWindowControllers]
方法。
我的窗口控制器是这样初始化的:
这里@"Document"
是包含与项目一起创建的主文档窗口的 .xib 文件。
这里的基本原理是,这个窗口控制器总是用这种类型的窗口初始化,所以参数是硬编码的,并且隐藏在实现中-init
(同时也方便地将窗口所有者设置为self
)。
因此,实例化窗口控制器的一方(在我的例子中是文档类)不需要担心要使用哪个 nib,只需调用-init
.
问题是,我破坏了指定的初始化器链,Xcode 抱怨这些警告:
未找到超类“-initWithCoder:”的指定初始化程序的语义问题方法覆盖。
语义问题指定初始化程序缺少对超类的指定初始化程序的“超级”调用。
未找到超类“-initWithWindow:”的指定初始化程序的语义问题方法覆盖。
语义问题 指定初始化程序调用了非指定初始化程序。
我会-initWithWindowNibName:owner:
用一个来切换调用-initWithWindow:
(然后手动设置所有者,我猜?);但我不知道如何NSWindow
直接从笔尖创建一个(或者这是正确的做法)。
编辑:我刚刚发现警告被触发只是因为我在我的界面中标记-init
为。NS_DESIGNATED_INITIALIZER
我可以删除该标签并且警告消失,但这-init
是我事实上指定的初始化程序,所以我宁愿保留它。
c - 使用指定的初始化程序初始化数组时出现奇怪的值
当我在下面初始化数组时,所有输出看起来都很好,除了values[3]
. 由于某种原因values[3]
初始化为values[0]+values[5]
输出一个非常大的数字。我的猜测是,我试图values[0]+values[5]
在它们正确存储在内存中之前进行分配,但如果有人能解释一下那就太好了。
输出如下:
ios - 如何解决 UITableViewController 的指定初始化错误?
我是 swift 新手,在 PlacesTableViewController 类中声明我的初始化程序时遇到问题。它提示我“在从初始化程序返回之前未调用 Super.init”,当我添加 Super.init 时,它提示我:
“必须调用超类 'UITableViewController' 的指定初始化程序”
这是我的 PlacesTableViewController.swift 文件:
这是我的另一个名为 ChapterData.swift 的类文件,用于打开数据库和检索数据