Iphone dev - Быстрый установщик / получатель q - PullRequest
0 голосов
/ 05 марта 2012

В этом коде:

@synthesize username, password, sliderLabel;

-(IBAction) sliding: (id) sender;
{
    UISlider *s = (UISlider*)sender;
    int value = (int) s.value;

    NSString *newLabel = [ [NSString alloc] initWithFormat:@"%i", value];

    sliderLabel.text = newLabel;


}

Я синтезирую имя пользователя и пароль, и он сам выполняет геттер и сеттер. Но затем я создаю UISlider и могу сделать s.value ....

Итак, два вопроса:

1. Я ошибаюсь, думая так: username - это UITextField - объект. У этого объекта есть переменные, поэтому, когда мы создаем и синтезируем переменную username, все ее (объекты) переменные получают сеттеры / геттеры - так что я могу сделать username.text и т. Д.? Если я не прав - тогда как это?

2. Почему я могу сделать s.value? Это просто неправильно. Я должен был синтезировать имя пользователя, пароль и sliderLabel .. но я мог мгновенно сделать s.value?

1 Ответ

0 голосов
/ 05 марта 2012

1.Вы можете получить и изменить все (не только для чтения) свойства userName (объект UITextFiels), поскольку класс UITextFiels имеет методы setter и getter для всех своих свойств

2.когда вы вызываете s.value, вы просто вызываете метод getter в классе UISlider ... вы просто вызываете: [s value]; (= означает getValue)

, поэтому Apple использовала синтез, когда она создала класс UISlider дляvar / property "value", так что вы можете получить к нему доступ с помощью общедоступных методов получения и установки

...