当前位置: 首页 > 知识库问答 >
问题:

类没有初始值设定项

伍溪叠
2023-03-14

我对Swift类有一个问题。我有UITableViewController类和UITableViewCell类的swift文件。我的问题是UITableViewCell类和网点。这个类有一个错误Class“HomeCell”没有初始化程序,我不明白这个问题。

感谢您的回复。

import Foundation
import UIKit

class HomeTable: UITableViewController, UITableViewDataSource, UITableViewDelegate {

    @IBOutlet var tableViex: UITableView!

    var items: [(String, String, String)] = [
        ("Test", "123", "1.jpeg"),
        ("Test2", "236", "2.jpeg"),
        ("Test3", "678", "3.jpeg")
    ]

    override func viewDidLoad() {
        super.viewDidLoad()

        var nib = UINib(nibName: "HomeCell", bundle: nil)
        tableView.registerNib(nib, forCellReuseIdentifier: "bookCell")
    }

    // Number row
    override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return self.items.count
    }

    // Style Cell
    override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

        var cell:UITableViewCell = self.tableView.dequeueReusableCellWithIdentifier("bookCell") as UITableViewCell

        // Style here

        return cell

    }

    // Select row
    override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
        // Select
    }

}

// PROBLEM HERE
class HomeCell : UITableViewCell {

    @IBOutlet var imgBook: UIImageView
    @IBOutlet var titleBook: UILabel
    @IBOutlet var pageBook: UILabel

    func loadItem(#title: String, page: String, image:String) {
        titleBook.text = title
        pageBook.text = page
        imgBook.image = UIImage(named: image)
    }

}

共有3个答案

欧阳成弘
2023-03-14

这是Apple doc提供的

类和结构必须在创建该类或结构的实例时将其所有存储属性设置为适当的初始值。存储属性不能处于不确定状态。

由于变量处于不确定状态,您会收到错误消息类“HomeCell”没有初始值设定项。要么创建初始值设定项,要么使用!或

国斌斌
2023-03-14

快速修复-确保所有创建时未初始化的变量(例如var num:Int?vsvar num=5)都有

长答案(建议)-按照mprivat建议阅读文档。。。

颛孙嘉玉
2023-03-14

您必须使用隐式展开选项,以便Swift可以处理循环依赖项(父

@IBOutlet var imgBook: UIImageView!
@IBOutlet var titleBook: UILabel!
@IBOutlet var pageBook: UILabel!

看看这个医生,他们解释得很好。

 类似资料:
  • 我通过解决一些黑客等级问题来学习java。下面的代码是关于学习静态初始值设定项块的。例外情况是thown和Capture,但程序仍在运行,我不确定原因。 输入:-1,2 预期输出:java.lang.例外:宽度和高度必须为正 实际输出:宽度和高度必须为正-2

  • 问题内容: 我对Swift类有疑问。我有一个UITableViewController类和UITableViewCell类的快捷文件。我的问题是UITableViewCell类和插座。此类存在错误 类别“ HomeCell”没有初始化程序 ,并且我不理解此问题。 感谢您的回复。 问题答案: 您必须使用隐式展开的可选变量,以便Swift可以在初始化阶段处理循环依赖关系(在这种情况下,UI组件的父级<

  • 可让PS Vita系统软件的设定回复初始设定,使主画面及开始画面皆回到至购买时的状态。 轻触[格式化]>[初始化设定]。请遵循画面指示正确操作。 重要 初始化设定后无法复原,请注意。 初始化中请勿关闭PS Vita的电源。初始化若遭到中断,可能会导致故障。 即使进行此操作,也无法让系统软件回到先前版本。

  • 在我的Angular应用程序中,我有一个组件: 但在“make”属性中我有一个错误。我不知道该怎么处理...

  • 我有一个场景,我需要从未知来源加载类并实例化它们以进行模拟——我不需要运行代码,但方法和属性必须在结果实例中。我还需要类的名称保持不变,以便将其实例分配给其他已加载类的该类型的字段。有时类实例化由于而失败,使类处于无效状态,无法恢复。我不知道哪个类会事先失败。 考虑一下这一点: 以下是我想到的: 使用ByteBuddy-fails with NoClassDefFoundError创建失败类的子类

  • 使用C#对象初始化器有什么好处吗? 在C语言中,没有引用,所有内容都封装在一个对象中,因此在创建对象后使用它们而不是初始化成员是有意义的。 在C#中使用它们的情况是什么? 如何:使用对象初始值设定项初始化对象(C#编程指南)