Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/107.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何从子类访问基类的属性_Ios_Xcode - Fatal编程技术网

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