Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/93.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
Ios 目标C铸造类结构指针指向具体类_Ios_Objective C_Class_Casting_Static Methods - Fatal编程技术网

Ios 目标C铸造类结构指针指向具体类

Ios 目标C铸造类结构指针指向具体类,ios,objective-c,class,casting,static-methods,Ios,Objective C,Class,Casting,Static Methods,在Objective C中,有一个类结构,它充当指向所有类实现的指针。在目标C中,其定义为: typedef struct objc_class *Class; 我试图创建一个类数组,并尝试遍历类数组并执行静态函数。下面是一些示例代码: //Each class is subclassed from the same abstract class with a function specialStaticFunction NSArray *array = [[NSArray alloc] in

在Objective C中,有一个类结构,它充当指向所有类实现的指针。在目标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的函数。因此,我想知道如何铸造一个类或其他人如何绕过此警告。

在此处使用
id
而不是
Class

for(id tempClass in array)

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

我认为这不是您实际遇到的错误。没关系,它发送的消息不是每个类都响应的。实际的错误是什么?”我得到警告,因为不是每个类都有一个名为specialStaticFunction“Nope”的函数。编译器不会检查发送到类型
Class
的消息。此外,您的代码是错误的,因为
initWithObjects:
的参数必须以
nil
终止。请使用
isKindOfClass
进行进一步检查