错误:在属性访问中使用self' reuseidentifier'在super.init初始化自我之前

时间:2015-03-08 18:53:31

标签: ios swift

您好我是IOS编程的新手,我正在尝试了解以下错误实际告诉我的内容以及如何解决它。请有人帮忙吗?

我的TableViewCell.swift文件中的代码添加在下面。

import UIKit

class SweetTableViewCell: UITableViewCell {

    @IBOutlet  var usernameLabel: UILabel! = UILabel()
    @IBOutlet  var timestampLabel: UILabel! = UILabel()
    @IBOutlet  var profileImageView: UIImageView! = UIImageView()
    @IBOutlet  var sweetTextView: UITextView! = UITextView()

    required init(coder aDecoder: (NSCoder!)) {
        super.init(coder: aDecoder)
    }


    override init(style: UITableViewCellStyle, reuseIdentifier reuseIdenifier: String?) {
        super.init(style: style, reuseIdentifier: reuseIdentifier)
        // Initialization code
    }
}

2 个答案:

答案 0 :(得分:1)

混淆错误消息,但我认为问题是您的“reuseIdenifier”本地参数名称。

尝试:

override init(style: UITableViewCellStyle, reuseIdentifier: String?) {
    super.init(style: style, reuseIdentifier: reuseIdentifier)
}

不幸的是,我无法深入链接,但请查看Swift文档中的外部参数名称部分:https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programming_Language/Functions.html

它发出此错误的原因是因为当您使用reuseIdentifier时,您实际上是在init中访问self.reuseIdentifier,因为reuseIdenifier实际上是该范围内的参数(由于本地参数名称)。在初始化self之前,您无法访问self属性。

答案 1 :(得分:1)

这是一个错误的类型,t丢失了:

reuseIdenifier
        ^^

所以在init主体中你实际上是指实例属性,这就是错误所说的内容。

但是由于外部和本地名称相同,所以如果您使用#快捷方式会更好:

override init(style: UITableViewCellStyle, # reuseIdentifier: String?) {