Swift NSUnknownKeyException - setValue :forUndefinedKey

标签 swift cs193p

我对 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 正在尝试使用黄色警告图标警告您这些问题:

enter image description here

关于Swift NSUnknownKeyException - setValue :forUndefinedKey,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31128305/

相关文章:

iphone - 如何创建可变大小的 UITableViewCell?

swift - 套接字 IO emitWithAck 事件处理程序得到 NO ACK,Swift

带有 3 个原型(prototype)单元和自动高度的 Swift tableView

objective-c - 无法从 Swift 访问桥接的 NSArray

json - Swift:使用 ObjectMapper 将 JSON 字符串转换为自定义对象数组

swift - 如何在 Xcode 6 中对齐标签下的按钮?

swift - 使用 Alamofire 和 SwiftyJson 从函数返回值

iphone - 简单 iPhone 应用程序启动时的 EXC_BAD_ACCESS

ios - Swift 中的可选绑定(bind)在prepareForSegue 中不起作用

ios - CS193P 作业 1 π