Теперь я знаю, что новый компилятор Objective-C позволяет вам больше не синтезировать свои свойства. У меня есть один файл, в котором есть два класса. Мой .h для простого вспомогательного класса выглядит следующим образом:
@interface ViewFrameModel : NSObject
@property (nonatomic, strong) UIView *view;
@property (nonatomic, assign) CGRect frame;
- (id)initWithView:(UIView *)view frame:(CGRect)frame;
@end
В том же файле .h для моего другого класса (класс 2) у меня есть:
@property (nonatomic, strong) ViewFrameModel *viewFrameModel;
В классе 2.m я могу это сделать:
- (void)setViewFrameModel:(ViewFrameModel *)viewFrameModel {
_viewFrameModel = viewFrameModel;
[self pushViewFrameModel:viewFrameModel];
}
Это отлично работает без жалоб от компилятора, однако, когда я добавляю это:
- (ViewFrameModel *)viewFrameModel {
return _viewFrameModel;
}
Я получаю две жалобы: по первому методу setViewFrameModel
:
"Использование незаявленного идентификатора _viewFrameModel, вы имели в виду viewFrameModel"
И другой при возврате _viewFrameModel
:
"Использование необъявленного идентификатора _viewFrameModel, вы имели в виду viewFrameModel" "Ссылка на локальную переменную viewFrameModel", объявленную в охватывающем контексте "
Почему я получаю эти ошибки, когда добавляю в
- (ViewFrameModel *)viewFrameModel {
return _viewFrameModel;
}
метод? Я хочу переопределить этот метод с помощью некоторой пользовательской информации, но он жалуется на меня: -. Мысли? ТИА.