Joe
Joe

Reputation: 207

iOS 8 UITableViewCell Class Compiler Error since Xcode Beta5

I'm already using Swift and since the update of Xcode beta4 to beta5 there are two compiler errors in the following code.

1st: init function - Error: "Overriding declaration requires an 'override' keyword" --> Solved

2nd: class FeedTableCell : UITableViewCell - Error: "Class 'FeedTableCell' does not implement its superclass's required members"

I couldn't find the required members in the documentation and other research - does anyone know what to do?

Code:

    import UIKit

    class FeedTableCell : UITableViewCell{

@IBOutlet var userLabel: UILabel!
@IBOutlet var hoopLabel: UILabel!
@IBOutlet var postLabel: UILabel!

func loadItem(#user: String, hoop: String, post: String) {
    userLabel.text = user
    hoopLabel.text = "#"+hoop
    postLabel.text = post
}

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

override func awakeFromNib() {
    super.awakeFromNib()
}

override func setSelected(selected: Bool, animated: Bool){
    super.setSelected(selected, animated: animated)
}

}

Upvotes: 1

Views: 1307

Answers (1)

Greg
Greg

Reputation: 25459

I resolved this issue by adding required init(coder aDecoder: NSCoder!) method:

class FeedTableCell : UITableViewCell{

    @IBOutlet var userLabel: UILabel!
    @IBOutlet var hoopLabel: UILabel!
    @IBOutlet var postLabel: UILabel!

    func loadItem(#user: String, hoop: String, post: String) {
        userLabel.text = user
        hoopLabel.text = "#"+hoop
        postLabel.text = post
    }

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

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


    override func awakeFromNib() {
        super.awakeFromNib()
    }

    override func setSelected(selected: Bool, animated: Bool){
        super.setSelected(selected, animated: animated)
    }
}

The other solution is remove init method at all:

class FeedTableCell : UITableViewCell{

    @IBOutlet var userLabel: UILabel!
    @IBOutlet var hoopLabel: UILabel!
    @IBOutlet var postLabel: UILabel!

    func loadItem(#user: String, hoop: String, post: String) {
        userLabel.text = user
        hoopLabel.text = "#"+hoop
        postLabel.text = post
    }

    override func awakeFromNib() {
        super.awakeFromNib()
    }

    override func setSelected(selected: Bool, animated: Bool){
        super.setSelected(selected, animated: animated)
    }
}

Upvotes: 8

Related Questions