- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
所以我为我的 UITableView
构建了一个自定义单元格类。 Xcode 坚持认为此 UITableViewCell
具有以下初始化程序(Xcode 实际上会自动为我填充此代码):
class customCell: UITableViewCell {
required init(coder aDecoder:NSCoder) {
fatalError("init(coder:) has not been implemented")
}
我修改了这个初始化程序的内容以包含以下内容:
// fatalError("init(coder:) has not been implemented")
super.init(coder: aDecoder)
如果我删除了关键字 required
,那么 Xcode 会抛出一个错误,并希望通过重新输入关键字来纠正我。
所以在我的 UITableView
类中,我尝试像这样注册这个单元格:
override func viewDidLoad(){
super.viewDidLoad()
let coder: NSCoder = NSCoder()
let customCell: AnyClass = customCell(coder: coder)
table?.registerClass(customCell, forCellReuseIdentifier:"cell")
倒数第二行(我用 NSCoder 初始化 customCell 的那一行,正如 Xcode 所希望的那样)产生了错误:
Cannot invoke 'init' with an argument list of type '(coder: NSCoder)'
如果可以的话,我更愿意在没有 NSCoder 的情况下构建我自己的初始化器。
如果我尝试使用任何其他初始化程序,则 Xcode 会按照以下行踢出错误:
Extra argument 'reuseIndenifier' in call
或
Missing argument in call
它将继续提示,直到我将初始化程序与 NSCoder 一起使用。我被迫使用这个初始化程序。
如果我离这里很远请纠正我,但对我来说我似乎陷入了第 22 条陷阱 - 如果我在没有编码器的情况下构建初始化器,Xcode 会提示,然后当我尝试使用带有编码器它提示我正在使用编码器。
尽管存在这种明显的矛盾,但我相当相信所有这一切都是我在某个地方是个笨蛋的结果。
有没有好心人给我指出正确的方向?
最佳答案
您需要注册类
本身而不是它的一个实例。
例如。
tableView?.registerClass(customCell.self, forCellReuseIdentifier:"cell")
需要 init(coder aDecoder:NSCoder)
的问题是一个单独的问题,在这里讨论:'required' initializer 'init(coder:)' must be provided by subclass of 'UITableViewCell'`
关于ios - UITableViewCell 和无法使用类型为 'init' 的参数列表调用 '(coder: NSCoder)',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27125833/
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
我是一名优秀的程序员,十分优秀!