结构体作为对象的属性

定义一个结构体

typedef struct{
    int year;
    int month;
    int day;
} Date;

在类中定义

{
    @public
    NSString *name;
    Date birthday;
}

使用.

- (void)say {
    NSLog(@"%@ , %d" , name , birthday->year);
}

初始化Student

Student *stu = [Student new];
stu->name = @"li";
stu->birthday = (Date){1990,5,3};
[stu say];

结构体初始化不能像下面这样写

stu->birthday = {1990,5,3};

原因是:
1.结构体只能在定义的时候初始化
2.系统并不清楚他是数组还是结构体

当然还有其他的赋值方法

  • 第二种
Date d = {1990 , 5 , 3};
stu->birthday = d;
  • 第三种
stu->birthday.year = 1990;
stu->birthday.month = 5;
stu->birthday.day = 3;

你可能感兴趣的:(结构体作为对象的属性)