结构体作为对象的属性

//
//  main.m
//  OC语言学习


#import <Foundation/Foundation.h>

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

@interface Student : NSObject
{
    @public
    NSString *_name;
    Date _birthday;
}

- (void)say;
@end

@implementation Student

- (void)say
{
    NSLog(@"name=%@,year=%i,month=%i,day=%i",_name,_birthday.year,_birthday.month,_birthday.day);
}

@end

int main(int argc, const char * argv[]) {
    
    //创建学生对象
    Student *stu = [Student new];
    [stu say]; //name=(null),year=0,month=0,day=0
    
    //设置属性
    stu->_name = @"ykd";
    
    /*
     1.结构体只能在定义的时候初始化
     2.系统并不清楚它是数组还是结构体
     */
//    stu->_birthday = {1988,1,1};
    stu->_birthday = (Date){1988,1,1};

    //调用方法
    [stu say]; //name=ykd,year=1988,month=1,day=1
    
    Date d1 = {2015,12,28};
    Date d2;
    d2 = d1; //本质是将d1所有的属性的值拷贝了一份复制给d1

    
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值