对于不存在的IBAction,class不符合关键值编码

时间:2017-06-19 07:01:18

标签: xcode nsunknownkeyexception

我在Xcode中创建了swift项目,并将Button添加到故事板中。该按钮的IBAction被命名为" WhenButtonPresed",但是当我运行应用程序时它会崩溃并且我得到了下面发布的错误,尽管我没有任何IBAction被称为" sd"

2017-06-19 08:46:21.909 Test_SWIFT_FMDB-1[958:18819] 
<CATransformLayer: 0x7fc353d2e1d0> - changing property 
contentsGravity in transform-only layer, will have no effect
2017-06-19 08:46:22.188 Test_SWIFT_FMDB-1[958:18819] *** Terminating 
app due to uncaught exception 'NSUnknownKeyException', reason:   
'[<Test_SWIFT_FMDB_1.ViewController 0x7fc353d25fa0> 
setValue:forUndefinedKey:]: this class is not key value coding-
compliant for the key sd.'

***首先抛出调用堆栈:

3 个答案:

答案 0 :(得分:2)

我发现了这个错误几次,似乎是UI上的配置不正确。 这似乎发生在我复制一个viewcontroller,它有一些链接到我在原始viewcontroller上使用的当前对象...

我如何纠正:

  1. 选择有问题的ViewController
  2. enter image description here

    1. 检查感叹号并将其删除
    2. enter image description here

      希望这有帮助

答案 1 :(得分:0)

在Interface Builder中检查您的连接。您可能指的是不存在的IBOutletIBAction

此外,请确保您不会在IBOutletIBAction的故事板中在viewcontroller中建立双重连接。

答案 2 :(得分:0)

故事板中必须是这样的。 只需删除private val shows = listOf("First", "Breaking Bad", "Game of Thrones", "Bob and Martin...") private val expandableListView: ExpandableListView by bind(R.id.theListView) override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) //Add items to expandable list view here } 操作即可。如果你只在代码中删除它,那么连接仍然存在并且它会在运行时导致崩溃。

在您的情况下:我添加sd然后将其从代码中删除,并添加另一个具有其他名称的操作(按)。但正如您所见,sd action仍然存在。

enter image description here