在静态库中使用类别时无法识别的选择器。
我在谷歌搜索并找到了这个? http://www.dribin.org/dave/blog/archives/2006/03/13/static_objc_lib/
但我仍然很困惑:
1、如果我有object.h/.m
and object+category.h/.m
, and #import "object+category.h"
in 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
,编译时还是运行时?