Objective-C 框架中的 Swift 类别在运行时无法识别

Posted

技术标签:

【中文标题】Objective-C 框架中的 Swift 类别在运行时无法识别【英文标题】:Swift Category in Objective-C Framework not recognised at run time 【发布时间】:2014-11-24 14:22:49 【问题描述】:

我确实在 Objective-C 中创建了一个 NSString 类别(函数“substringFromString:toString:”)。它是我自己的框架的一部分,我在我的应用程序中使用它。 Objective-C 框架的组件使用这个函数以及我的新 Swift 应用程序。该框架已经使用了很多次并且运行良好。我已将框架添加到我的 Swift 项目中,并将 NSString 类别添加到桥接头文件中。该应用程序可以正常编译,但是一旦该类别被库中的一个组件使用,我就会收到以下错误:

-[Swift._NSContiguousString substringFromString:toString:]: unrecognized selector sent to instance 0x7fe6a8d2d550    

如前所述,它是我在 Objective-C 库中的一个 Objective-C 组件,它会引发此异常。非常感谢任何帮助!

【问题讨论】:

可能是因为 Objective-C 中的 NSString 和 Swift 中的 String 是不同的东西。尝试使用NSString 而不是String 【参考方案1】:

刚刚收到。我必须添加“-ObjC”作为链接器标志。

【讨论】:

以上是关于Objective-C 框架中的 Swift 类别在运行时无法识别的主要内容,如果未能解决你的问题,请参考以下文章

使用 Objective-C 类别扩展 Swift 类

如何在 Swift 中调用 Objective-C 类别方法

在自定义 Swift 框架中的 Objective-C 文件上使用 Swift

在 Swift 中使用 Objective-C 类别的正确方法是啥?

如何在同一框架内访问 Objective-C 中的内部 Swift 类?

在 Swift 3 的值类型中访问 Objective-C 类别的属性(关联参考)