OC基础7

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 对象的本质是结构体

原文地址:https://www.cnblogs.com/Wolfanature/p/5396078.html