@property(nonatomic,copy) NSString *title;
1、声明property之后就会默认生成成员变量的指针符号_title,这部分工作是在编译期间添加的。还有默认生成set和get方法的声明及实现。
因为自iOS6开始,声明属性可以省略@synthesize编译指令了,编译器会自动为对应属性添加“_属性名”的成员变量。但是如果你想改变这种默认行为,也可显式地调用@synthesize指令为属性指定成员变量名。
2、self.title与self->_title。这两种写法针对的是同一个成员变量。
3、属性与成员变量的关系:在OC中我们不会直接访问成员变量,而是通过属性来访问,可以说“属性是访问成员变量的一种方式”。成员变量是用来保存值的,当要对成员变量中保存的值进行访问(get获取)或更改(set赋值)时就用属性进行操作。所以说属性产生的原因是为了更方便地操作成员变量,为了“更方便”才产生了set和get方法。