簡體   English   中英

錯誤:在super.init初始化self之前,在屬性訪問“ reuseidentifier”中使用self

[英]Error: Use of self in property access 'reuseidentifier' before super.init initializes self

嗨,我是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
    }
}

令人困惑的錯誤消息,但我相信問題是您的“ 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,因為復用Idenifier實際上是該作用域中的參數(由於本地參數名稱)。 在初始化self之前,您無法訪問self的屬性。

這是一個錯誤的類型, t丟失了:

reuseIdenifier
        ^^

因此,在init主體中,您實際上是在引用instance屬性,這就是錯誤所指出的內容。

但是,由於外部名稱和本地名稱相同,因此最好使用#快捷方式:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM