Ios 如何从子类访问基类的属性
我有两门课:Ios 如何从子类访问基类的属性,ios,xcode,Ios,Xcode,我有两门课: 基类是player它有属性name 子类是计算机 如何通过访问基类属性来设置计算机播放器的名称 基类 @interface Player : NSObject @property (nonatomic) NSString* playerName; @property (nonatomic) int score; -(id) initWithName :(NSString*) playerName; -(void) addScore:(int) points; @end
- 基类是
它有属性player
name
- 子类是
计算机
@interface Player : NSObject
@property (nonatomic) NSString* playerName;
@property (nonatomic) int score;
-(id) initWithName :(NSString*) playerName;
-(void) addScore:(int) points;
@end
子类
@interface Computer : Player
@end
m
你的问题很难理解,所以如果我回答的不是你的问题,请告诉我 假设您有一个继承自超级类vehicle的类car,该类vehicle有一个属性wheels,您可以通过以下方式获得:
super.wheels = 4;
调用
计算机
类中的属性,如
super.name = @"Bob";
您还可以使用调用超类的方法
super.myMethod();
您可以直接从子类中的超类访问属性 Player.h
@interface Player : NSObject
@property(nonatomic, copy) NSString *name;
- (instancetype)initWithName:(NSString *)name;
@end
计算机
@interface Computer : Player
@end
计算机
@implementation Computer
- (instancetype)initWithName:(NSString *)name {
self = [super initWithName:name];
if (self) {
self.name = @"test";
}
return self;
}
@end
尽管,正如@Phillip Mills所建议的,在Player.m中设置name属性可能是更好的做法。我阅读并尝试了很多示例,除非您做了一些奇怪的事情,否则答案是相同的,就像它是子类本身的属性一样。如果这不起作用,我们需要详细信息(代码)。您尝试了哪些示例?。。。您可以直接在任何子类中使用'self.name'。我添加(self=[super init]),然后self.name复制器说name不是computer@PhillipMills我添加了代码pls HELPS不起作用子类不认为超级类是玩家你到底做了什么?你在哪里创造的球员?确定它是一个子类吗?
@implementation Computer
- (instancetype)initWithName:(NSString *)name {
self = [super initWithName:name];
if (self) {
self.name = @"test";
}
return self;
}
@end