当我在“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.我以为他们无法访问其他变量..
答案 0 :(得分:2)
需要合成方法(getter和setter)来从类外部访问实例变量。类中的代码(在实例方法中)可以直接访问实例变量。它们适用于类实现中的任何代码。范围是整个类,而不仅仅是类中的单个方法。
乔