Objective c 类别何时生效

Objective c 类别何时生效,objective-c,ios,categories,Objective C,Ios,Categories,我有点被关于类别的事情弄糊涂了。如果我为ClassA编写了一个名为ClassA+某物的类别,那么该类别在什么时候生效?我假设某个地方的单个导入将导致在整个项目中将类别应用于ClassA,但该导入应放在哪里?我发现在我的项目的预编译头文件(.pch)中导入类别最容易 这样,我的所有类都可以使用创建编译器警告。我发现在我的项目的预编译头文件(.pch)中导入类别最简单 这样,我的所有类都可以使用创建编译器警告。如果类别的源文件是生成的一部分,则它将在main()运行之前生效,而不管类别的头是否导入到

我有点被关于类别的事情弄糊涂了。如果我为ClassA编写了一个名为ClassA+某物的类别,那么该类别在什么时候生效?我假设某个地方的单个导入将导致在整个项目中将类别应用于ClassA,但该导入应放在哪里?

我发现在我的项目的预编译头文件(.pch)中导入类别最容易


这样,我的所有类都可以使用创建编译器警告。

我发现在我的项目的预编译头文件(.pch)中导入类别最简单


这样,我的所有类都可以使用创建编译器警告。

如果类别的源文件是生成的一部分,则它将在main()运行之前生效,而不管类别的头是否导入到其他文件中。导入头的唯一区别是,您可以调用类别的方法(在导入它的任何文件中),而无需生成编译器警告。

如果类别的源文件是生成的一部分,它将在main()运行之前生效,无论类别的标题是否导入到其他文件中。导入头的唯一区别是,您可以调用类别的方法(在导入它的任何文件中),而无需生成编译器警告。

实际上,链接器负责添加类别。。如果将
-all_load
添加到链接器标志中,则确保加载所有类别(+所有子库中的类别)以及所有类别。如果您在某处包含标题,链接器将添加该类别。如果你有一个复杂的库树层次结构(我曾经用facebook+一些其他库,具体取决于SBJson的类别)
-所有加载都是你修复疯狂运行时错误的方法

实际上链接器负责添加类别。。如果将
-all_load
添加到链接器标志中,则确保加载所有类别(+所有子库中的类别)以及所有类别。如果您在某处包含标题,链接器将添加该类别。如果你有一个复杂的库树层次结构(我曾经用facebook+一些其他库,具体取决于SBJson的类别)
-所有加载都是你修复疯狂运行时错误的方法