我刚刚了解了使用GCC编译时可以使用的__unused标志,我了解的越多,我的问题就越多...为什么编译时没有警告/错误?我特地告诉编译器我不会使用变量,这似乎很奇怪,然后当我使用它时,一切都照常进行。-(void)viewDidLoad{[superviewDidLoad];[selffoo:0];}-(void)foo:(NSInteger)__unusedmyInt{myInt++;NSLog(@"myInt:%d",myInt);//Logs'1'}另外,下面两个方法签名有什么区别?-(void)foo:(NSInteger)__unusedmyInt;-(void)foo:(
我完全理解为什么会出现未使用的变量警告。我不想一般地压制它们,因为它们在大多数情况下都非常有用。但是,请考虑以下(人为的)代码。NSError*error=nil;BOOLsaved=[mocsave:&error];NSAssert1(saved,@"Dude!!1!%@!!!",error);Xcode报告saved是一个未使用的变量,当然它不是。我怀疑这是因为NSAssert1是一个宏。NS_BLOCK_ASSERTIONS宏是未定义的,因此肯定启用了ObjectiveC断言。虽然它不会伤害任何东西,但我觉得它不整洁而且很烦人,我想压制它,但我不知道该怎么做。将变量分配给自身可以
我完全理解为什么会出现未使用的变量警告。我不想一般地压制它们,因为它们在大多数情况下都非常有用。但是,请考虑以下(人为的)代码。NSError*error=nil;BOOLsaved=[mocsave:&error];NSAssert1(saved,@"Dude!!1!%@!!!",error);Xcode报告saved是一个未使用的变量,当然它不是。我怀疑这是因为NSAssert1是一个宏。NS_BLOCK_ASSERTIONS宏是未定义的,因此肯定启用了ObjectiveC断言。虽然它不会伤害任何东西,但我觉得它不整洁而且很烦人,我想压制它,但我不知道该怎么做。将变量分配给自身可以