出于某种原因,编译器会给我一个警告,告诉我我的类别方法可能不在那里(比如"foobar可能不会响应doFoo")。但是,这个类别是可行的。
发布于 2010-04-23 21:55:08
是,您必须导入类别头文件。否则,编译器将对该类别中定义的任何方法调用发出警告。这与您在类上调用方法时完全相同,并且未定义该方法。
由于Objective-C的动态特性,尽管存在编译器警告,但在运行时它仍然能够找到并执行您调用的方法。这就是为什么警告是"foobar not respond to doFoo“的原因。在编译时,编译器找不到doFoo方法的声明,因此它可能无法正确调用doFoo方法,但是在运行时可以正确调用doFoo方法。
https://stackoverflow.com/questions/2698561
复制相似问题