Silly Objective-C inheritance problem when using property
- by Ben Packard
I've been scratching my head with this for a couple of hours - I haven't used inheritance much.
Here I have set up a simple Test B class that inherits from Test A, where an ivar is declared. But I get the compilation error that the variable is undeclared. This only happens when I add the property and synthesize declarations - works fine without them.
TestA Header:
#import <Cocoa/Cocoa.h>
@interface TestA : NSObject {
NSString *testString;
}
@end
TestA Implementation is empty:
#import "TestA.h"
@implementation TestA
@end
TestB Header:
#import <Cocoa/Cocoa.h>
#import "TestA.h"
@interface TestB : TestA {
}
@property NSString *testProp;
@end
TestB Implementation (Error - 'testString' is undeclared)
#import "TestB.h"
@implementation TestB
@synthesize testProp;
- (void)testing{
NSLog(@"test ivar is %@", testString);
}
@end