如何获得@ -directive-preprocessed Objective-C代码

时间:2015-07-06 09:00:37

标签: objective-c

如何查看预处理的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

我怎么能看到它?

1 个答案:

答案 0 :(得分:1)

你的最后一句话包含答案:

  

@property或@synthesize未经过预处理

这些是语言的一部分,它们与预处理器无关。在预处理之后,您不能再看到这些构造了while循环。

如果您希望查看它们的编译内容,可以检查汇编程序,Xcode菜单项Product > Perform Action > Assemble

HTH