由于某种原因,编译器向我发出警告,我的类别方法可能不存在(例如“foobar可能不响应doFoo”)。但是,该类别有效。
答案 0 :(得分:3)
是的,您必须导入类别标题文件。否则,编译器将对类别中定义的方法的任何调用发出警告。这与在类上调用方法时完全相同,并且未定义方法。
由于Objective-C的动态特性,在运行时它仍然能够找到并执行您调用的方法,尽管编译器警告。这就是为什么警告措辞“foobar 可能不响应doFoo”。在编译时,编译器无法找到doFoo方法的声明,因此它可能无法正确调用doFoo方法,但是在运行时可能会正确调用doFoo方法。