Objective-C中的开放变量
我需要帮助。我需要一个变量,可用于我的应用程序中的每个函数Objective-C中的开放变量,objective-c,global-variables,Objective C,Global Variables,我需要帮助。我需要一个变量,可用于我的应用程序中的每个函数 @interface A() @property (assign) CGFloat x; @end @implementation @synthesize x = _x; -(void)DidLoad { ... self.x = 1.0; } -function1 { CGFloat y; y = x; NSString *
@interface A()
@property (assign) CGFloat x;
@end
@implementation
@synthesize x = _x;
-(void)DidLoad
{ ...
self.x = 1.0; }
-function1
{ CGFloat y;
y = x;
NSString *string = [NSString stringWithFormat:"%f", y];
NSLog(@"%@", string);
}
但是“y”是空变量!你能帮助初学者吗 在功能1中,您应该使用:
y = self.x;
y = _x; //this should work too, but it's not recommended to access the variable that way.
为什么你会说不推荐使用iVar?就内存管理而言,它是完全安全的,并且避免了函数调用的开销。哦,我犯了一个错误。我写了y=self.x;而“y”仍然是empty@RichardJ.RossIII在此上下文中使用iVar是安全的(在它和属性相同的情况下),在属性中可能包含自定义代码的情况下,它会成为一个问题—获取/设置iVar不会调用代码。我发现始终使用该属性是一种很好的做法,因此它会成为一种习惯。@RichardJ.RossIII我说不建议使用它,因为这样您就不会访问setter/getter方法。在这种情况下,它可能是安全的,但我发现调用getter和setter是一种很好的做法。