我对 swift 很陌生,我正在 iTunes U 上学习斯坦福大学类(class)。我一直遵循得很好,但我遇到了一个我无法理解的错误:
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 .
非常感谢任何帮助。
阿马尔
最佳答案
在您的 Main.storyboard 文件中,您有一个名为“Enter”的按钮的引用导出,该导出设置为一个名为 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 正在尝试使用黄色警告图标警告您这些问题:
关于Swift NSUnknownKeyException - setValue :forUndefinedKey,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31128305/