1

在静态库中使用类别时无法识别的选择器。

我在谷歌搜索并找到了这个? http://www.dribin.org/dave/blog/archives/2006/03/13/static_objc_lib/

但我仍然很困惑:

1、如果我有object.h/.mand object+category.h/.m, and #import "object+category.h"in object.m,我将这些作为源代码添加到我的项目中,它工作正常(没有无法识别的选择器错误)。但是,如果我将这些编译到静态库并添加到我的项目中,则会因无法识别的选择器而崩溃。

那么这两种方式有什么不同呢?为什么第一种方式可以找到选择器而第二种方式不能?

2、文章说“作为一种优化,链接器只选择解析符号所需的目标文件。” 与静态库和源代码相同吗?表示如果我在我的项目中有object.h/.mobject+category.h/.m作为源代码并且object+category.h/.m从未使用过。所有这些编译的.o文件都会链接到最终的.app吗?

3、xcode链接器如何知道object+category.o是必需的并将其链接到.app,如果符号是为每个类而不是每个方法创建的?当链接发生时object+category.o,编译时还是运行时?

4

0 回答 0