首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >类没有初始值设定项Swift

类没有初始值设定项Swift
EN

Stack Overflow用户
提问于 2015-01-06 19:07:23
回答 6查看 141.6K关注 0票数 185

我对Swift类有个问题。我有一个用于UITableViewController类和UITableViewCell类的快速文件。我的问题是UITableViewCell类和插座。这个类有一个错误"HomeCell“ no initializers,我不明白这个问题。

感谢您的回复。

代码语言:javascript
复制
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)
    }

}
EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2015-01-06 19:31:41

您必须使用隐式展开选项,以便Swift能够在初始化阶段处理循环依赖(在本例中为UI组件的父项<->子项)。

代码语言:javascript
复制
@IBOutlet var imgBook: UIImageView!
@IBOutlet var titleBook: UILabel!
@IBOutlet var pageBook: UILabel!

阅读这篇doc,他们很好地解释了这一切。

票数 259
EN

Stack Overflow用户

发布于 2015-01-26 19:40:37

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

很长的答案(推荐)-按照mprivat的建议阅读doc ...

票数 100
EN

Stack Overflow用户

发布于 2015-06-19 16:44:27

这是来自苹果doc

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

您会收到错误消息“类”HomeCell没有初始化程序,因为您的变量处于不确定状态。要么创建初始化器,要么将它们设置为可选类型,使用!或者?

票数 33
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27797351

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档