代码使用单个警告构建,并生成预期输出“Hello,World!”
示例文件“TestClass.h”
#import <Cocoa/Cocoa.h>
@interface TestClass : NSObject {
}
- (void)foobar;
@end
示例文件“TestClass.m”
#import "TestClass.h"
@implementation TestClass
- (void)say {
// Compiler output "warning: 'TestClass' may not respond to '-hello'"
[self hello];
}
- (void)hello {
NSLog(@"Hello, World!");
}
- (void)foobar {
[self say];
}
@end
@interface TestClass ()
- (void)say;
- (void)hello;
@end
可以通过在@implementation部分中将“hello”方法置于“say”上方来避免编译器警告。但是依赖于你的方法的顺序是令人讨厌的。有没有办法绕过这个编译器警告,而不必按任何特定的顺序放置你的方法?
答案 0 :(得分:7)
不,没有。的期间强>
编译器会自上而下地解析您的代码,所以请将您的私人@interface
定义置于上面1>},这样你就可以了。< / p>