【问题标题】:ios/objective-c: Reference variable in methodios/objective-c:方法中的引用变量
【发布时间】:2016-03-15 04:35:52
【问题描述】:

在一种方法中,保存,我设置了一个属性 saveUnderway。

-(void) save {
BOOL saveUnderway=YES;
}

如何从同一个类中的另一个方法引用它?

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

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

【问题讨论】:

  • 你试图从其他方法设置保存方法中的布尔值?
  • 没有检索它。但是,根据乔的回答,我想我必须将其存储为接口扩展。

标签: ios objective-c methods


【解决方案1】:

saveUnderway 仅在 -save 方法的范围内可用,当它像这样声明时。如果您不想在 .h 文件中设置属性,则可以在您的 .m 文件中设置接口扩展,上面是 @implementation 调用并在那里声明属性。它看起来像这样。

@interface MyClass ()

@property (nonatomic, assign) BOOL saveUnderway;    

@end

然后你可以通过调用 self.saveUnderway 来访问它

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

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

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

【讨论】:

  • 谢谢。不知道为什么这么多反对票。当用户在保存按钮上单击两次时,saveUnderway 可能很有用。如果第一次保存已经在进行中,阻止第二次保存会很有用。
  • 投反对票是因为,从您提出问题的方式来看,您似乎对objective-c 几乎没有任何了解。您正在尝试以没有任何意义的方式访问 saveUnderway 变量。很多人因此认为这个问题的质量不是很高。每个人都从某个地方开始!祝你的项目好运。
【解决方案2】:

乔·贝尔给出了很好的答案。

请记住,如果您想在其他地方使用该 bool 值,您可以使用 NSUserDefaults 来存储一些内容,但不要忘记重置该值,以免造成混乱。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多