0

次のプログラムを実行すると、Sum = 0. しかし、 he ステートメントint a = 5とを移動するとint b = 6 inside -(int)sum {...}、出力は 11 になります。2 番目のケースで正しい解が得られる理由は確かに理解できます。Sum = 0しかし、変数と同じ名前でグローバル変数を定義すると、なぜ取得するの@propertyでしょうか? @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]);       
}
4

1 に答える 1