【问题标题】:<MasterEventCell 0x8975ae0> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key EventDetails What is wrong here?<MasterEventCell 0x8975ae0> setValue:forUndefinedKey:]: 这个类对于键 EventDetails 的键值编码不兼容这里有什么问题?
【发布时间】:2013-12-08 07:42:09
【问题描述】:

我正在为我的最终项目编写此代码。我正在努力寻找代码中的错误。这是一个运行时错误,因为它编译并打开了模拟器,但运行后显示此消息:

由于未捕获的异常“NSUnknownKeyException”而终止应用程序,原因:“[setValue:forUndefinedKey:]:此类与键 EventDetails 的键值编码不兼容。”

我知道当出现这样的错误代码时,我会发现诸如“不一致的类”或“未使用正确的方法”之类的响应。不过,我不确定我哪里出错了。我的 MasterEventCell 文件中的所有内容似乎都与我正在尝试做的事情一致(创建并定义了自定义标签)。谁能告诉我什么是错的?

MasterEventCell.h:

#import <UIKit/UIKit.h>

@interface MasterEventCell : UITableViewCell

@property (weak, nonatomic) IBOutlet UILabel *eventDetailsLabel;
@property (weak, nonatomic) IBOutlet UILabel *eventLocationLabel;
@property (weak, nonatomic) IBOutlet UILabel *eventDateLabel;


@end

MasterEventCell.m:

#import "MasterEventCell.h"

@implementation MasterEventCell

- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)masterCell
{
    self = [super initWithStyle:style reuseIdentifier:masterCell];
    if (self) {
        // Initialization code
    }
    return self;
}

- (void)setSelected:(BOOL)selected animated:(BOOL)animated
{
    [super setSelected:selected animated:animated];

    // Configure the view for the selected state
}

@end

我的项目链接如下。

项目链接已删除。

【问题讨论】:

  • 您的 nib/storyboard 文件包含指向您已重命名或删除的属性的链接。找到它并从界面生成器中删除它。
  • 我正在使用情节提要。我应该在属性检查器下查看这个重命名/删除的属性吗?
  • 查看 MasterEventCell 的连接检查器。
  • 由于我在这个网站上的声誉不足,我无法发布照片,但在连接检查器下,我没有连接。这可能是问题吗?注意:MasterEventCell.h 中的每个标签声明与情节提要中的相应标签之间存在联系

标签: ios iphone runtime-error


【解决方案1】:

从我在你的项目中看到的......

打开故事板,展开 Final Master View Controller - Master Scene,单击 Master Event Cell - FinalCell 元素,显示连接检查器。

查看 Outlets 部分,您会看到六个中的三个旁边有警告符号:dateTime、EventDetails 和 location。这些在您的代码中不存在;删除它们。

【讨论】:

  • 正是我想要的!谢谢!
【解决方案2】:

查看此问题的答案:this class is not key value coding-compliant for the key PerformRotate

您的错误消息报告想要访问一个名为“EventDetails”的键 - 这不会显示在您发布的代码 sn-p 中,但请查找它在您的代码中的位置。在您的故事板中仍有对“EventDetails”的引用,现在可能是“eventDetails”(注意名称开头的大小写更改)......或完全是其他东西。

【讨论】:

  • 我确信你是对的,正如上面许多人所说的那样。也许我还没有使用 Storyboard 的经验,但我似乎无法在 Storyboard 中找到我将引用“EventDetails”的确切位置。我检查了我所有的控制器和视图,但似乎找不到哪里出错了
  • 想通了!非常感谢!
猜你喜欢
  • 2016-11-13
  • 2015-05-08
  • 1970-01-01
  • 2014-01-12
  • 1970-01-01
  • 1970-01-01
  • 2017-08-07
  • 1970-01-01
  • 2015-09-13
相关资源
最近更新 更多