在静态库中使用类别时无法识别的选择器。
我在谷歌搜索并发现了这个? 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/.m
和object+category.h/.m
作为源代码,则永远不会使用object+category.h/.m
。所有编译好的.o
文件是否会链接到最终的.app?
3,xcode链接器如何知道需要object+category.o
并将其链接到.app如果只为每个类创建符号,而不是每个方法?当链接发生在object+category.o
,编译时或运行时?