属性是OC2.0之后出来的新的语法,用来替代setter以及getter方法,使用属性可以快速创建setter以及getter方法的声明,setter以及getter方法的实现.另外还添加了对实例变量操作的安全处理 在.h文件 @property用来定义属性,NSString *属性的类型(和实例变量类型相同) name属性名和实例变量名相同)切记:@property只是自动声明setter以及getter 方法的声明 例如 @property NSString *name; NSString *为属性的类型 name 为属性名 在.m文件 @synthesize 属性的实现部分,实现属性自动生成的setter以及getter方法 例如 @synthesize name = _name; name 属性名 , 指定要实现哪一个属性生成的setter以及getter方法 _name,指定setter和getter方法内部所要操作的实例变量 如果指定的实力变量没有定义,系统会字自动生成指定的实例变量,但是生成的实例变量是私有的,子类不能直接访问.如果实例变量想让子类访问,在.h文件必须定义实例变量.如果未指定setter和getter内部所要访问的实例变量时,系统自动生成一个和属性名一样的实例变量. 如果对于setter和getter方法我们一旦实现以后系统就不会再自动生成了 如果在.m文件中为通过@synthesize对属性进行合成,系统自动合成,只不过此时系统默认的setter和getter方法内部所操作的实例变量是_属性名.
浅谈属性
时间: 2024-10-12 05:59:29