为什么我不必建立二传手吸气者使用这些变量?

时间:2011-10-09 22:21:14

标签: objective-c variables methods setter getter

当我在“Cocoa应用程序”中编写代码时,我能够在不使用@property“bla bla bla”的情况下逃脱 和 @synthesize“......”

仍然按照我声明的变量做我想做的事。例如..

IBOutlet NSTextField *textField;
IBOutlet NSTextView *viewField;

然后简单地在这些变量下面构建方法。

-(IBAction)buttonPressed:(id)sender;
-(int)adding;

然后我可以进入.m文件,我可以做像

这样的事情
-(IBAction)buttonPressed:(id)sender {
int myVariable = [self adding];

[viewField insertText:[NSString stringWithFormat:@".... %i", myVariable]];

}

-(int)adding {
    int myAge = [textField intValue];
    int myVariable = 100 - myAge;

    return myVariable;
}

我不明白为什么我可以做这一切而不做任何制定者&事先得到了。

任何人都可以解释。感谢。

哦,还有一件事......

如果变量仅在声明它的方法中有效,为什么我能够这样做呢。

例如

-(int)myMethod {
int variableA = 50;

}

-(int)myotherMethod  {
  int variableA + 100;

}

它会给我答案150 ..

'myotherMethod'如何知道变量A等于50.我以为他们无法访问其他变量..

1 个答案:

答案 0 :(得分:2)

需要合成方法(getter和setter)来从类外部访问实例变量。类中的代码(在实例方法中)可以直接访问实例变量。它们适用于类实现中的任何代码。范围是整个类,而不仅仅是类中的单个方法。