OC基础7
# @property 和 @synthesize
# @property int age; #编译器特,自动生成成员变量的setter和getter的声明
# //- (void) setAge:(int)age;
# // - (int) age;
# @synthesize age = _age; # //编译器特性,自动生成成员变量的setter和getter的实现,并且会访问_age这个成员变量。
# @synthesize age; # //如果不写的话,会默认访问age这个成员变量。如果在.h文件中没有声明age的话会自动生成@private类型的age.
# @synthesize age = _age,name = _name;
# 细节:精简1(不在.h文件声明成员变量,.h文件中只有@property int age;),如果不在.h文件中定义_age,.m文件中会访问_age,如果不存在,会自动生成【@private】类型的_age变量。
# 细节:精简2(不在.h文件中声明文件变量,不在.m文件中实现getter和setter,h文件中只有@property int age;)
# (比较近的Xcode4.4后才有这个功能,@property用了@synthesize的功能)
# @property int age, 一句相当于
# (1) 在.h文件中生成成员_age,(2)会在.h文件中实现setter和getter的声明。
# (2) 在.h文件中对setter和getter声明。
# (3) 在.m文件中对setter和getter实现。
# @property 只能用在@interface @end中间
# @synthesize 只能用在@implementation @end中间
#【id】
# //是一种类型,
# //万能指针,能指向控制任何对象
# Person *p = [Person new];
# id d = [Person new]; #不需要加*,id可以理解成NSOject*
#OC 对象的本质是结构体