Swift 和 OC 混编遇到的一些问题

Swift和OC混编中, 有时候OC通过字符串生成Class. 然后通过[[Class alloc] init]生成OC对象.

今天遇到一个诡异的问题, 就是OC死活都生成不了Class. 但是类名明明没有错.

OC调用代码

Class viewControllerClass = NSClassFromString("YGSuggestionViewController");
//viewControllerClass 死活都是nil
NSAssert(viewControllerClass, @"can't find Class");
      

下面是Swift的类

class YGSuggestionViewController: UIViewController,XLFormRowDescriptorViewController{
...
}

最后发现解决办法, OC在调用NSClassFromString的时候, 要通过@objc()把这个类声明为OC对象.

@objc(YGSuggestionViewController)
class YGSuggestionViewController: UIViewController,XLFormRowDescriptorViewController{
...
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 转至元数据结尾创建: 董潇伟,最新修改于: 十二月 23, 2016 转至元数据起始第一章:isa和Class一....
    40c0490e5268阅读 1,825评论 0 9
  • 前言: Swift语言出来后,可能新的项目直接使用Swift来开发,但可能在过程中会遇到一些情况,某些已用OC写好...
    疯狂的电脑阅读 2,358评论 0 9
  • 对于从事 iOS 开发人员来说,所有的人都会答出【runtime 是运行时】什么情况下用runtime?大部分人能...
    梦夜繁星阅读 3,741评论 7 64
  • 一直想提笔写你,一直都未动笔。太多太多的故事让我不知从哪开始,总觉得怎么样都无法把你生动的再现。 我和你相处的18...
    安然静如初阅读 533评论 0 1
  • 如何成为领域内的高手? 首先,要去练习,而且是有规律的练习。练习就是对你选择的事情,规律地做;不管想不想做,都去做...
    岸竹小屋阅读 95评论 0 2