从子类函数

时间:2016-06-17 09:59:10

标签: ios objective-c

我有一个父类。

头文件(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:这里

2 个答案:

答案 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