如果我运行以下程序,我会得到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]);
}