静态库中的类别困惑

时间:2012-11-26 07:10:07

标签: xcode linker static-libraries objective-c-category

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

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

但我仍感到困惑:

1,如果我在object.h/.m中有object+category.h/.m#import "object+category.h"以及object.m,我会将这些作为源代码添加到我的项目中,它运行正常(没有无法识别的选择器)错误)。但是,如果我将这些编译成静态库并添加到我的项目中,则会使用无法识别的选择器崩溃。

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

2,文章说“作为优化,链接器只选择解析符号所需的目标文件。”与静态库和源代码相同?表示如果我的项目中有object.h/.mobject+category.h/.m作为源代码,则永远不会使用object+category.h/.m。所有编译好的.o文件是否会链接到最终的.app?

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

0 个答案:

没有答案