【发布时间】:2014-02-17 00:35:05
【问题描述】:
在 Objective C 中,有一个 Class 结构,它充当指向您拥有的任何类实现的指针。在 Objective C 中,它被定义为:
typedef struct objc_class *Class;
我正在尝试拥有一个类数组,并且我正在尝试遍历该类数组并执行静态函数。下面是一些示例代码:
//Each class is subclassed from the same abstract class with a function specialStaticFunction
NSArray *array = [[NSArray alloc] initWithObjects:Class1, Class2, Class3];
for(Class tempClass in array)
[tempClass specialStaticFunction];
}
运行该代码时,我收到警告,因为并非每个类都有一个名为 specialStaticFunction 的函数。所以我想知道如何强制转换一个 Class 或者其他人如何规避这个警告。
【问题讨论】:
-
我认为这实际上不是您遇到的错误。它可以发送并非每个班级都响应的消息。实际错误是什么?
-
“我收到警告,因为不是每个类都有一个名为 specialStaticFunction 的函数”不。编译器不检查发送到类型
Class的消息。 -
另外,您的代码是错误的,因为
initWithObjects:的参数必须以nil结尾。
标签: ios objective-c class casting static-methods