Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 如果一个类有多个类别,会发生什么?_Objective C - Fatal编程技术网

Objective c 如果一个类有多个类别,会发生什么?

Objective c 如果一个类有多个类别,会发生什么?,objective-c,Objective C,在目标C中,如果一个类在单个应用程序中有多个类别, 我们在实例化时需要指定类的类别吗?无需在实例化时指定类的类别。category添加的方法成为类的一部分。例如,如果将方法添加到NSString类中,则compile将期望NSString实例在其指令库中包含。所有类别中定义的所有方法都将添加到该类中。这发生在运行时,如果不同类别中有两个方法具有相同的签名,则未定义将使用哪个方法,因此即使可以,也没有必要为任何特定实例化指定特定类别-所有实例化都将使用相同的方法实现 如果您想拥有仅对特定实例化可用

在目标C中,如果一个类在单个应用程序中有多个类别,
我们在实例化时需要指定类的类别吗?

无需在实例化时指定类的类别。category添加的方法成为类的一部分。例如,如果将方法添加到
NSString
类中,则compile将期望
NSString
实例在其指令库中包含。

所有类别中定义的所有方法都将添加到该类中。这发生在运行时,如果不同类别中有两个方法具有相同的签名,则未定义将使用哪个方法,因此即使可以,也没有必要为任何特定实例化指定特定类别-所有实例化都将使用相同的方法实现

如果您想拥有仅对特定实例化可用的方法,请改用子类