0
如果我運行以下程序,我會得到Sum = 0
。但如果我移動他的陳述int a = 5
和int b = 6 inside -(int)sum {...}
,我得到的輸出爲11.我當然明白爲什麼我在第二種情況下得到正確的解決方案。但是當我定義與@property
變量同名的全局變量時,爲什麼我會得到Sum = 0
?編譯器是否給全局變量賦予了@property
變量的更高優先級?帶有全局變量和屬性變量的意外輸出
// newFunction.h:
@interface newFunction : NSObject
@property int a,b;
-(int)sum;
@end
// newFunction.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]);
}