我有一个父类。
头文件(Parent.h):
@interface Parent
@end
实施文件(Parent.m):
@interface Parent {
// I defined a instance vaiable 'name'
NSString *name;
// another custom type instance variable
School *mySchool;
}
@end
@implementation Parent
...
@end
然后,我有一个{strong}继承 Child
的{{1}}课程。
标题(Child.h):
Parent
实施文件(Child.m):
@interface Child : Parent
-(void)doSomething;
@end
如何从子类函数中访问父类中定义的实例变量?
====澄清===
我的意思是如何使用'名称'例如,不仅要获得它的价值。 例如:在' name'上拨打writeToFile:atomically:encoding:error:这里
答案 0 :(得分:1)
使用键值编码。
环境:
[self setValue:@"Hello" forKey:@"name"];
读:
NSString* name = [self valueForKey:@"name"];
[name writeToFile:@"Filename"
atomically:YES
encoding:NSUTF8StringEncoding
error:nil];
答案 1 :(得分:0)
现在不建议用户在代码中使用ivars并在公共标头中声明ivars,但如果你真的需要,那么你可以使用这个旧式代码:
//Parent.h
@interface Parent: NSObject {
@protected
NSString *_name;
School *_mySchool;
}
@end
//Parent.m
@implementation Parent
...
@end
//Child.h
@interface Child : Parent
-(void)doSomething;
@end
//Child.m
@implementation Child
-(void)doSomething{
School *school = self->_mySchool;
NSString *name = self->_name;
}
@end