Сеттер метод вопросов
В xcode я заметил, что есть метод, который создается автоматически при использовании свойства.
Например, если я введу @property(nonatomic)BOOL selected;
в @interface
метод создается в фоновом режиме, который может быть использован в @implementation
выглядит так:
-(void)setSelected:(BOOL)selected {}
Теперь я не знаю, как это называется, но я предполагаю, что это называется метод установки, теперь я подумал, что мог бы использовать это для некоторых вещей при установке selected boolean
но когда я называю это, и это пусто; ничего не происходит, даже selected
получает назначенное значение, и когда я ввожу:
self.selected = selected;
Он попадает в бесконечный цикл, и приложение вылетает, есть ли простой способ разрешить этот бесконечный цикл, или я не должен использовать такие методы?
ФИКСИРОВАННЫЙ
Я синтезировал self.selected
и теперь он не зацикливается.
@synthesize selected;
-(void)setSelected:(BOOL)selected_ {
selected = selected_;
}
1 ответ
Вам необходимо получить доступ к бэк-iVar для selected
свойство в сеттере
-(void)setSelected:(BOOL)selected {
if (_selected != selected) {
_selected = selected;
}
}
Назначение self.selected = selected
вызовет сеттер, и вызов этого параметра внутри настройки приведет к бесконечному циклу!