以下のコードをベースクラスに持ちます。私はself->baseVal_
を使用して変数を呼び出すか、私は派生クラスで定義されたプロパティを削除した場合、その後、すべてがOKであれば派生クラスがプロパティを持つ場合の宣言されていない変数
以下のコードでは、しかし、コンパイルエラーに
...abcAppDelegate.m:30: error: 'baseVal_' undeclared (first use in this function)
を与えます。
また、派生クラスのカテゴリを定義すると、エラーなしで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
App Delegateでは、DerivedClassではなくエラーが発生しているようです。この変数にアクセスしているAppDelegateコードを投稿できますか? – hundreth
上記の例では、appDelegate.mファイルにクラス(上記の正確なコード)を貼り付けましたが、例はより大きいコードベースから取られています –
BTW:Objective-Cにはメンバ変数がありますが、インスタンス変数。 – bbum