Objective C casting类结构指向具体类的指针

时间:2014-02-17 00:35:06

标签: ios objective-c class casting static-methods

在Objective C中,有一个Class结构,它充当指向您拥有的任何类实现的指针。在Objective C中,它被定义为:

typedef struct objc_class *Class;

我正在尝试拥有一个Classes数组,并且我正在尝试迭代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];
}

运行该代码时,我收到警告,因为并非每个Class都有一个名为specialStaticFunction的函数。所以我想知道如何施放一个类或者其他人如何绕过这个警告。

1 个答案:

答案 0 :(得分:0)

使用id代替Class

for(id tempClass in array)

这应该从编译器中删除警告,但是您仍然需要确保每个对象都实现该方法,否则您的应用程序将崩溃。