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 类别在运行时无法识别的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Swift 中调用 Objective-C 类别方法
在自定义 Swift 框架中的 Objective-C 文件上使用 Swift
在 Swift 中使用 Objective-C 类别的正确方法是啥?