【问题标题】:"unrecognized selector" error with bridging header even it's added in settings带有桥接头的“无法识别的选择器”错误,即使它已添加到设置中
【发布时间】:2017-11-25 18:33:58
【问题描述】:

我添加了this project 的.h 和.m 文件并创建了一个桥接头。我确保在项目设置中正确输入了桥接头位置...

...它会导入所需的文件。

我的 ViewController 中有一个 UIView,它的类型设置为 IPDFCameraViewController。在 viewDidLoad() 中,我正在调用此类中的一个函数:

@IBOutlet weak var cameraViewController: IPDFCameraViewController!

override func viewDidLoad() {
    super.viewDidLoad()

    self.cameraViewController.setupCameraView()
    self.cameraViewController.isBorderDetectionEnabled = true

}

我没有错误或警告,但是当它尝试执行 cameraViewController.setupCameraView() 时,它崩溃并抛出以下内容:

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIView setupCameraView]: unrecognized selector sent to instance 0x7ff1b0930620'

我可能错过了这么简单的东西,但这让我发疯了,我该怎么办?

【问题讨论】:

  • 请包含代码,而不是屏幕截图。另请显示异常消息的详细信息。什么是实例类型,什么是选择器?还要在 .h/.m 文件中显示该函数的声明
  • @Paulw11 我更新了这个问题。同样对于函数声明,它甚至不属于函数,但标题只是- (void) setupCameraView { }

标签: ios objective-c swift bridging-header


【解决方案1】:

您还没有在故事板中为您的视图设置自定义类,因此您的出口指的是UIView 的实例,当然UIView 没有函数setupCameraView

【讨论】:

    【解决方案2】:

    错误,因为您设置了 UIViewController 类型的 UIView。视图控制器必须作为 childViewControllers 添加,而不是通过 uiviews。在您的故事板中添加 ContainerViewController,将其设置为您的 IPDFViewController,然后制作插座

    【讨论】:

    • IPDFCameraViewControllerUIView 的子类
    • 这个类的名字很糟糕。它应该是IPDFCameraView,因为它不是视图控制器。
    • 是的,也许我可以为此重命名
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多