У меня есть свойство, объявленное в моем файле .h как
@property (weak, nonatomic) UIPickerView *levelPicker;
, которое синтезировано в моем файле реализации как:
@synthesize levelPicker = _levelPicker;
У меня есть блок кода в том жефайл реализации, который выполняет следующее:
if (self.levelPicker == nil) {
self.levelPicker = [[UIPickerView alloc] initWithFrame:CGRectZero];
self.levelPicker.delegate = self;
self.levelPicker.dataSource = self;
}
textField.inputView = self.levelPicker;
В этом случае self._levelPicker не установлен в новый UIPickerView.Т.е. назначение self.levelPicker = blah не работает.
Однако, если я изменяю объявление свойства на:
@property (strong, nonatomic) UIPickerView *levelPicker;
, тогда все работает, как ожидается, и _levelPicker устанавливается на вновьвыделенный UIPickerView.
Может кто-нибудь сказать, пожалуйста, почему это так?Я думал, что пришел к пониманию того, как работают ссылки, но я думаю, что мне еще есть чему поучиться.Я прочитал некоторые другие связанные с этим сообщения, но мне все еще не совсем ясно.