Почему мне не нужно создавать сеттеры и геттеры, чтобы использовать эти переменные? - PullRequest
0 голосов
/ 10 октября 2011

Когда я пишу код внутри «приложения какао», я могу избежать использования @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 Ответ

2 голосов
/ 10 октября 2011

Синтезированные методы (геттеры и сеттеры) необходимы для доступа к переменным экземпляра извне класса. Код внутри класса (в методах экземпляра) имеет прямой доступ к переменным экземпляра. Они находятся в области действия любого кода в реализации класса. Область действия - весь класс, а не единственный метод в классе.

Джо

...