Необъявленная переменная из базового класса, когда производный класс имеет свойство - PullRequest
2 голосов
/ 22 июня 2011

У меня есть следующий код ниже, где базовый класс имеет член, который (должен быть) доступен производному классу.

Однако приведенный ниже код дает ошибку компиляции
...abcAppDelegate.m:30: error: 'baseVal_' undeclared (first use in this function)

Если я вызываю переменную, используя self->baseVal_ или если я удаляю свойство, определенное в производном классе, тогда все в порядке.

Кроме того, если я определю категорию производного класса, я получу доступ к baseVal_ без ошибок.

//---------------------------------------------------------------
// BASE CLASS
//---------------------------------------------------------------

@interface BaseClass : NSObject 
{
@protected    
    BOOL baseVal_;
} 
@end

@implementation BaseClass 
@end

//---------------------------------------------------------------
// DERIVED CLASS
//---------------------------------------------------------------

@interface DerivedClass : BaseClass {
} 
@property (readwrite) BOOL val;
@end

@implementation DerivedClass
@synthesize val;
- (void) foo {
    baseVal_ = YES;
}
@end

1 Ответ

0 голосов
/ 22 июня 2011

Посмотрите здесь: Нажмите .Возможно, это ошибка в GCC, но это легко исправить, добавив val в качестве переменной экземпляра вместо использования свойства без.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...