1 结构体
typedef struct {
int year;
int month;
int day;
}Date;
stu->_name = @"xgd";
stu->_birthday = (Date){1999, 1 ,15};
stu->_birthday.year = 1999;
2 对象
@interface Student : NSObject
{
@public
NSString *_name;
Date _birthday;
}
@end
Student *stu = [Student new];
Student *student = [[Student alloc]init];
new和alloc/init在功能上几乎是一致的,分配内存并完成初始化。
区别:
1.new的方式只能采用默认的init方法完成初始化,采用alloc的方式可以用其他定制的初始化方法。
2.alloc分配内存的时候使用了zone,zone它是给对象分配内存的时候,把关联的对象分配到一个相邻的内存区域内,以便于调用时消耗很少的代价,提升了程序处理速度。
@implementation Student
- (void)say{
NSLog(@"name = %@, year = %i, month = %i, day = %i", _name, _birthday.year, _birthday.month, _birthday.day);
}
@end