Нет видимого ивара для свойства с именем "изображение"?
Предположим, у фиктивного ВК есть частная собственность "Имидж"
dummyVC.h
@interface dummyVC : UIViewController
@end
dummyVC.m
@interface dummyVC ()
@property (nonatomic, strong) UIImage *image;
@end
- (void)setImage:(UIImage *)image
{
if(!_image) { // compiler tells me _image is a 'undeclared indentifier'
//do something
}
}
Если я попытаюсь использовать _image
в своем установщике компилятор говорит мне, что я использую undeclared identifier
,
Однако, если я изменю имя свойства на image1
или же anotherImage
, Там нет проблем с использованием _image1
а также _anotherImage
,
Кто-нибудь может объяснить, почему это произошло?
1 ответ
Я собираюсь догадаться, что проблема либо
Ты говоришь
@synthesize image;
не говоря нам об этом, или
вы предоставляете метод получения
image
не говоря нам об этом.
Когда вы говорите, что делаете одну из этих вещей, и вы поставляете сеттер, как вы делаете здесь (setImage:
), то синтезированная переменная экземпляра называется image
не _image
, Но если вы не поставите и сеттер, и геттер, или вы не скажете @synthesize
, синтезированная переменная экземпляра называется _image
,
Держу пари, что это разница между вашими делами.