ios/objective-c:方法中的参考变量

ios/objective-c:方法中的参考变量,ios,objective-c,methods,Ios,Objective C,Methods,在save方法中,我设置了一个属性save -(void) save { BOOL saveUnderway=YES; } 我如何从同一类中的另一个方法引用它 -(void) someOtherMethod { if ([self save.saveUnderway]==YES) { //this line throws error expected ']' //do something } } 如果可能,我希望避免在.h文件中设置属性。谢谢您的建议。saveAwarding仅在-save方

在save方法中,我设置了一个属性save

-(void) save {
BOOL saveUnderway=YES;
}
我如何从同一类中的另一个方法引用它

-(void) someOtherMethod {
if ([self save.saveUnderway]==YES) { //this line throws error expected ']'
//do something
}
}

如果可能,我希望避免在.h文件中设置属性。谢谢您的建议。

saveAwarding仅在-save方法的范围内可用,声明如下。如果不想在.h文件中设置属性,可以在@implementation call上方的.m文件中设置接口扩展名,并在其中声明属性。看起来像这样

@interface MyClass ()

@property (nonatomic, assign) BOOL saveUnderway;    

@end
然后,您可以通过调用self.saveback来访问它

如果您根本不想设置属性,也可以像这样声明变量

@implementation MyClass {
    BOOL _saveUnderway; // Convention usually has an _ before the variable name which is why I put it here.
}

然后,您可以通过在类中的任何方法中调用_save来访问它。

Joe Bell给出了一个很好的答案


请记住,如果您想在其他地方使用该布尔值,可以使用NSUserDefaults来存储某些内容,但不要忘记重置该值,这样它就不会把事情搞砸。

r您试图从其他方法在save方法中设置布尔值吗?不,检索它。然而,根据Joe的回答,我想我必须将其存储为interface extension.Thx。不知道为什么会有这么多的反对票。当用户单击两次“保存”按钮时,“保存”可能很有用。如果第一次保存已经进行,那么阻止第二次保存是很有用的。否决票是因为,从你提问的方式来看,你似乎对objective-c几乎没有任何理解。您试图以一种毫无意义的方式访问saveUndering变量。很多人认为这个问题的质量不是很高。但每个人都从某个地方开始!祝你的项目好运。