【发布时间】:2012-06-18 20:31:58
【问题描述】:
关于 Apple 的技术问答: http://developer.apple.com/library/mac/#qa/qa1490/_index.html
我认为编译器可以在编译时标记对类别中定义的方法的调用(它知道它们是在类别中定义的,而不是在主类中定义的,因为原型位于@interface Class (Category) 部分中) - 所以它可以构建“外部类别方法”的目标文件中的一个表。然后,链接器在进行正常链接之后,应该能够连接/合并和处理来自所有对象的“外部类别方法”表,并在所有链接的框架/库/对象的匹配类类别中查找匹配符号,然后它可以拉入尚未“进入”目标的那些。
一定有我遗漏的东西,但它是什么?为什么这不可能?
【问题讨论】:
标签: objective-c llvm llvm-3.0