Swift NSUnknownKeyException - setValue:forUndefinedKey

时间:2015-06-30 01:53:42

标签: swift cs193p

我很快乐,我正在iTunes U上做斯坦福课程。我一直都很好,但我遇到了一个我无法理解的错误:

2015-06-29 18:45:35.080 calculator2[9780:4828233] *** Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<calculator2.ViewController 0x7fae561041b0> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key enter.'

我已将我的回购上传到github here

非常感谢任何帮助。

阿玛尔

1 个答案:

答案 0 :(得分:0)

在Main.storyboard文件中,您有一个名为&#34的按钮的参考插座;输入&#34;到一个名为enter的IBOutlet变量,它似乎在ViewController类中存在很长时间。要解决此问题,请在ViewController中声明此变量,或从界面构建器中删除对它的引用。

@IBOutlet weak var enter: UIButton!

同样,您的Enter按钮所连接的IBAction是enter:,但您的IBAction方法称为enter(没有冒号)。您应该将其更改为包含一个参数,该参数映射到包含冒号的选择器名称。

@IBAction fun enter( sender: AnyObject? ) {}

而且,对于IBOutlet或IBAction,最好不要使用像enter这样的简单名称,当然也不能同时使用这两个名称。 IBOutlet的enterButton和IBAction的enterPressed:更合适,可以避免混淆或命名冲突。

如果右键单击界面构建器中的ViewController对象,您可以看到Xcode正在尝试用黄色警告图标警告您这些问题:

enter image description here