【问题标题】:Swift NSUnknownKeyException - setValue:forUndefinedKeySwift NSUnknownKeyException - setValue:forUndefinedKey
【发布时间】:2015-09-16 15:52:43
【问题描述】:

我对 swift 很陌生,我正在 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.'

我已将我的 repo 上传到 github here

非常感谢任何帮助。

阿马尔

【问题讨论】:

    标签: swift cs193p


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2012-06-05
      • 2014-12-10
      • 2014-07-03
      • 2010-09-07
      • 2012-06-22
      • 1970-01-01
      • 1970-01-01
      • 2012-04-14
      • 2017-02-19
      相关资源
      最近更新 更多