如何查看预处理的Objective-C代码,其中@property和@synthesize等Objective-C指令已经过预处理?
我在Stackoverflow中搜索了这个主题,有一些关于如何查看预处理代码的提示,例如Xcode Preprocessor Output。但是,“预处理代码”不涉及预处理的Objective-C指令。例如,在“预处理代码”中,不会对@property或@synthesize之类的Objective-C指令进行预处理。
以下面的代码为例,
// ========= Person.h =========
@interface Person: NSObject
{
}
-(void) Print;
@property int age;
@end
// ========= Person.m =========
@implementation Person
-(void) Print
{
NSLog(@"Print_Age:%d", _age);
}
@end
我期望看到的是这样的:
// ========= Person.h =========
@interface Person: NSObject
{
int _age;
}
-(void) Print;
-(int) age;
-(void) setAge:(int) age;
@end
// ========= Person.m =========
@implementation Person
-(void) Print
{
NSLog(@"Print_Age:%d", _age);
}
-(int) age {
return _age;
}
-(void) setAge:(int) age {
_age = age;
}
@end
我怎么能看到它?
答案 0 :(得分:1)
你的最后一句话包含答案:
@property或@synthesize未经过预处理
这些是语言的一部分,它们与预处理器无关。在预处理之后,您不能再看到这些构造了while
循环。
如果您希望查看它们的编译内容,可以检查汇编程序,Xcode菜单项Product > Perform Action > Assemble
。
HTH