如果我运行以下程序,我会得到Sum = 0. 但是如果我移动 he 语句int a = 5和int b = 6 inside -(int)sum {...},我得到的输出是 11。我当然明白为什么我在第二种情况下得到了正确的解决方案。Sum = 0但是当我定义与变量同名的全局变量时,为什么会得到@property呢?编译器是否赋予@property变量高于全局变量的优先级?
// 新函数.h:
@interface newFunction : NSObject
@property int a,b;
-(int)sum;
@end
// 新函数.m
@implementation newFunction
@synthesize a,b;
int a = 5;
int b = 6;
-(int)sum
{
return (a+b);
}
@end
//main.m
@autoreleasepool {
newFunction *var1 = [[newFunction alloc] init];
NSLog(@"Sum = %i", [var1 sum]);
}