- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我决定用 Swift 继续我剩下的项目。当我将自定义类(UIViewcontroller
的子类)添加到 Storyboard View Controller 并加载项目时,应用程序突然崩溃并出现以下错误:
fatal error: use of unimplemented initializer 'init(coder:)' for class
这是一个代码:
import UIKit
class TestViewController: UIViewController {
init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: NSBundle?) {
super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil)
// Custom initialization
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
/*
// #pragma mark - Navigation
// In a storyboard-based application, you will often want to do a little preparation before navigation
override func prepareForSegue(segue: UIStoryboardSegue?, sender: AnyObject?) {
// Get the new view controller using [segue destinationViewController].
// Pass the selected object to the new view controller.
}
*/
}
请推荐一些东西
最佳答案
这是由于目标 UIViewController
上缺少初始化程序 init?(coder aDecoder: NSCoder)
造成的。该方法是必需的,因为从 UIStoryboard
实例化 UIViewController
会调用它。
要了解我们如何从 UIStoryboard
初始化 UIViewController
,请查看 here
因为 Objective-C 自动继承了所有必需的 UIViewController
初始化器。
Swift 出于安全考虑,默认情况下不会继承初始化器。但如果所有属性都有值(或可选)并且子类没有定义任何指定的初始化器,它将从父类(super class)继承所有初始化器。
在目标UIViewController
上手动实现init?(coder aDecoder: NSCoder)
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
}
在目标 UIViewController
上删除 init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: NSBundle?)
将从父类(super class)中继承所有必需的初始化程序作为 戴夫伍德指着他的answer下面
关于ios - fatal error : use of unimplemented initializer 'init(coder:)' for class,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24036393/
NSCoding 需要 init(coder:),但也有此方法的可选版本 init?(coder:)。 如果返回 nil,具体应该怎么办?这甚至是一个问题吗? 假设您正在使用 init(coder:)
我正在处理一个 MATLAB Coder 项目,我想在其中加载一些常量值。在尝试了多种可能性之后,均未成功,我提出了“coder.load”指令,该指令从 MAT 文件加载变量并假定它们作为生成的 C
我正在构建 Apache Beam 管道,但在尝试导入管道选项时遇到了 AttributeError。 我正在使用 python3.6 在干净的虚拟环境中的 Ubuntu 服务器上进行测试 步骤: v
我需要使用 y=coder.ceval() 从 matlab 调用 c 函数,并从该函数返回一个字符串。但是 coder.ceval() 函数只允许我返回标量值。然而 String 是一个 char
最近我从 Xcode 6.2 更新到 Xcode 6.3 beta 4 并打开了我的项目。我在 init() 上遇到以下错误:Missing argument for parameter 'coder
我正在 simulink 中开发一个系统控制,我想在嵌入式板上运行这个模型。因此,我想将模型的输入和输出与特定函数(在模型外部手写)联系起来。 为了理解:我有一个输入,它是一个包含 8 个元素的数组。
我正在使用 Matlab 处理大型数组中的大量数据。我的程序运行良好,现在我已将其转换为 C,但遇到了最大数组大小问题。 定义emxArray时,定义如下: struct emxArray_real_
我正在尝试在一段代码中使用动态增长的结构数组,该代码应该使用 Coder 转换为 C: 我初始化该结构,然后为编码器声明其字段可变大小,然后我继续扩展该结构。请注意,我已经简化了这个示例以帮助生成代码
我已将自定义 UIButton 编码为: class AccountOpeningButton: UIButton { required init?(coder aDecoder: NSCode
我正在通过在线类(class)学习 iOS 开发,每次我制作自定义 View (自定义表格 View 单元格、 Collection View 单元格等)时,讲师总是实现此初始化程序: require
为将来阅读本文的人提供一些背景知识(以防它未锁定)。我倾向于使用高级语言进行编程以首先理解问题。在涵盖所有可能的极端情况后,我继续将代码翻译成 C++(或 C)。 我编写的大部分代码都包含数学,因此
我正在尝试为1.7.10安装地雷编解码器包。我已经下载了src forge软件包,并且正在使用终端。我用它来安装它。 http://www.minecraftforge.net/wiki/Instal
我正在尝试使用 Matlab 编码器从 .m 文件生成 mex 代码文件。其代码是 function [result,x]=tesrank(A,x) result = []; n = x; for c
我正在尝试使用 Matlab Coder 工具将一些 matlab 代码转换为 c 动态库 (.dll)。我正在一些简单的示例代码上尝试它,但我不断收到相同的错误,但找不到解决方案。 我的代码是: f
我正在学习 Java,作为高中作业之外的个人项目,我决定制作一些数学求解程序来练习。 为了热身,我决定编写一个基本的计算器程序......并且它有效......有点。所以...请帮助我! 目标: ->
当我尝试运行 int(coder:) 时它显示此错误,我不知道为什么? “不可失败的初始化器要求 init(coder:) 不能被可失败的初始化器 ('init?') 满足” class Note:
需要初始化一个对象,但我的初始化程序不合作。到目前为止我已经知道了,但我不确定如何将参数传递给我的对象初始值设定项。 init(coder aDecoder: NSCoder, caseImage:
我有一个继承自 PFTableViewCell 的自定义类。我想使用 Storyboard 来初始化类(class)。我使用“tableView.dequeueReusableCellWithIden
我正在尝试暂停或停止一个永远重复的 SKAction,这应该在用户按下暂停按钮时发生。我找到了一种停止音乐的方法,但由于这个错误,我无法调用它所在的函数。它准确地说:Missing argument
我有一个函数 sq_dist()。可以像这样调用此函数 sq_dist(a,b) 或 sq_dist(a)。此功能包括缓慢的操作,因此我正在尝试制作它的 Mex 版本,希望它运行得更快。我正在使用 M
我是一名优秀的程序员,十分优秀!