此类不是密钥值编码兼容的密钥

Tho*_*eza 2 class uitableview ios swift swift3

我是快速开发的新手,我正在研究这个苹果提供快速教程的部分.我创建了一个嵌套在表格单元格中的标签,图像和自定义视图的插座.当我跑步时,我得到这个错误

2016-07-20 23:16:11.110 FoodTracker [8446:3016336] Interface Builder文件中的未知类MealTableViewCell.2016-07-20 23:16:11.124 FoodTracker [8446:3016336] *由于未捕获的异常'NSUnknownKeyException'而终止应用程序,原因:'[setValue:forUndefinedKey:]:此类不符合密钥值,符合密钥nameLabel ".*第一次抛出调用堆栈:

没有重复的出口,我相信我的表视图控制器中使用的cellIdentifier是正确的.我的表格单元格

import UIKit

class MealTableViewCell: UITableViewCell {

//    MARK: Properties
@IBOutlet weak var nameLabel: UILabel!
@IBOutlet weak var photoImageView: UIImageView!
@IBOutlet weak var ratingControl: RatingControl!

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

override func setSelected(selected: Bool, animated: Bool) {
    super.setSelected(selected, animated: animated)
}}
Run Code Online (Sandbox Code Playgroud)

我的表视图控制器

import UIKit

class MealTableViewController: UITableViewController {
// MARK: Properties

var meals = [Meal]()

override func viewDidLoad() {
    super.viewDidLoad()
    loadSampleMeals()
}

func loadSampleMeals() {
    let photo1 = UIImage(named: "meal1")!
    let meal1 = Meal(name: "Caprese Salad", photo: photo1, rating: 4)!

    let photo2 = UIImage(named: "meal2")!
    let meal2 = Meal(name: "Chicken and Potatoes", photo: photo2, rating: 5)!

    let photo3 = UIImage(named: "meal3")!
    let meal3 = Meal(name: "Pasta with Meatballs", photo: photo3, rating: 3)!

    meals += [meal1, meal2, meal3]
}

override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
    return 1
}

override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return meals.count
}

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    // Table view cells are reused and should be dequeued using a cell identifier.
    let cellIdentifier = "MealTableViewCell"
    let cell = tableView.dequeueReusableCellWithIdentifier(cellIdentifier, forIndexPath: indexPath) as! MealTableViewCell

    // Fetches the appropriate meal for the data source layout.
    let meal = meals[indexPath.row]

    cell.nameLabel.text = meal.name
    cell.photoImageView.image = meal.photo
    cell.ratingControl.rating = meal.rating

    return cell
}}
Run Code Online (Sandbox Code Playgroud)

谢谢!

小智 7

检查故事板文件中是否存在损坏的插座链接.找到您的控制器并control在其笔尖上方的黄色圆圈上单击以打开操作和插座弹出窗口.您应该看到nameLabel带有黄色警告标志的插座.将其重新连接到控制器的文件,如果重复,则将其删除.在此输入图像描述