问题标签 [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.

0 投票
2 回答
70045 浏览

ios - Swift - 必须调用超类 SKSpriteNode 错误的指定初始化程序

此代码在第一个 XCode 6 Beta 上工作,但在最新的 Beta 上它不起作用并给出这样的错误Must call a designated initializer of the superclass SKSpriteNode

这就是这个类的初始化方式:

我坚持下去..最简单的解决方法是什么?

0 投票
3 回答
1332 浏览

c - C99 结构体指定初始化器和其他值

我知道在 C99 中,您可以使用成员名称初始化结构的成员,如下所示:

所以以下是有效的:

据说未初始化的成员将被设置为0. 所以

这里i将设置为0

但是,对于以下内容:

i仍然初始化为0。如果我们这样做复合初始化是什么原因。

0 投票
2 回答
8772 浏览

objective-c - 在 Xcode 6 中关闭指定的初始化程序检查

我收到编译错误:

经过编译检查的指定初始化程序可能是一件好事,但如果我现在不想处理它,我该如何关闭它呢?

0 投票
2 回答
559 浏览

c - C中的神秘结构定义

我遇到了以下迷宫定义代码:

从链接的博客文章中,我了解到他们正在尝试用图中的奶酪定义二叉树。

但是,我似乎无法从 C 代码应该做的事情中脱颖而出。如果有人可以向我解释,那就太好了。

0 投票
1 回答
1788 浏览

swift - 添加 NSCoding 作为扩展

我想扩展一个框架类(我不想直接编辑源代码),并使其符合NSCoding.

基本上,这是我所处情况的简化:

问题是init(coder aDecoder: NSCoder),根据头文件,一个designated initializer这不是很奇怪吗?不应该是一个convenience initializer吗?)。但是,文档说扩展不能添加新的指定初始化程序。

我的英语不是很完美,也许我错过了什么……或者真的不可能吗?

0 投票
2 回答
3619 浏览

objective-c - 是什么导致 UIBarButtonItem 的初始化程序继承问题?

我正在尝试创建一个简单的 UIBarButtonItem Swift 子类:

但是当我尝试实例化它时:

代码编译正确,但在运行时失败:

我不明白为什么会在这种情况下发生这种情况,或者一般是什么原理导致了这个问题。init(text)初始化程序应该直接委托给超init(customView)类。为什么要init()调用呢?它不应该参与。

谁能解释发生了什么?当我尝试继承其他 UIKit 类时,出现了类似的问题

0 投票
0 回答
244 浏览

objective-c - NSWindowController 初始化警告

我正在开发一个基于文档的应用程序。我正在为文档窗口使用专用的窗口控制器,并调用该-[NSDocument makeWindowControllers]方法。

我的窗口控制器是这样初始化的:

这里@"Document"是包含与项目一起创建的主文档窗口的 .xib 文件。

这里的基本原理是,这个窗口控制器总是用这种类型的窗口初始化,所以参数是硬编码的,并且隐藏在实现中-init(同时也方便地将窗口所有者设置为self)。

因此,实例化窗口控制器的一方(在我的例子中是文档类)不需要担心要使用哪个 nib,只需调用-init.

问题是,我破坏了指定的初始化器链,Xcode 抱怨这些警告:

未找到超类“-initWithCoder:”的指定初始化程序的语义问题方法覆盖。

语义问题指定初始化程序缺少对超类的指定初始化程序的“超级”调用。

未找到超类“-initWithWindow:”的指定初始化程序的语义问题方法覆盖。

语义问题 指定初始化程序调用了非指定初始化程序。

我会-initWithWindowNibName:owner:用一个来切换调用-initWithWindow:(然后手动设置所有者,我猜?);但我不知道如何NSWindow直接从笔尖创建一个(或者这是正确的做法)。

编辑:我刚刚发现警告被触发只是因为我在我的界面中标记-init为。NS_DESIGNATED_INITIALIZER我可以删除该标签并且警告消失,但这-init 我事实上指定的初始化程序,所以我宁愿保留它。

0 投票
3 回答
48 浏览

objective-c - Objective-C:为什么不调用指定的初始化器?

我继承了这段代码:

并且想知道第一个方法不调用指定的初始化程序是否有充分的理由(例如,像这样在 init 方法中调用 self 中的 init 方法可以吗?)?

即为什么不这样做:

0 投票
5 回答
1430 浏览

c - 使用指定的初始化程序初始化数组时出现奇怪的值

当我在下面初始化数组时,所有输出看起来都很好,除了values[3]. 由于某种原因values[3]初始化为values[0]+values[5]输出一个非常大的数字。我的猜测是,我试图values[0]+values[5]在它们正确存储在内存中之前进行分配,但如果有人能解释一下那就太好了。

输出如下:

0 投票
4 回答
8001 浏览

ios - 如何解决 UITableViewController 的指定初始化错误?

我是 swift 新手,在 PlacesTableViewController 类中声明我的初始化程序时遇到问题。它提示我“在从初始化程序返回之前未调用 Super.init”,当我添加 Super.init 时,它提示我:

“必须调用超类 'UITableViewController' 的指定初始化程序”

这是我的 PlacesTableViewController.swift 文件:

这是我的另一个名为 ChapterData.swift 的类文件,用于打开数据库和检索数据