添加@objc(NewClassName)会破坏Swift中的Storyboard引用

时间:2016-01-05 16:24:30

标签: ios swift

我想知道是否有其他人遇到过这个问题;

我需要将@objc(NewClassName)行添加到我的View Controller中,以便它的Objective-C对应物可以看到它带有Objective-C前缀类名。

import UIKit

@objc(NewClassName)

class ClassName: UIViewController {
  • View Controller代码是用Swift编写的
  • 故事板引用在没有@objc行的情况下正常工作
  • 添加@objc行会出错:

    *** Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<UIViewController 0x17f62f70> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key mainView.'
    

注意:mainView是我自己添加的视图。如果没有@objc

,则不会出现此错误

删除@objc行使其全部按预期工作。

这是在故事板中设置的方式:

Storyboard setup

1 个答案:

答案 0 :(得分:1)

您需要将故事板类名更新为NewClassName。运行时没有找到ClassName并实例化通用UIViewController,导致异常。