温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

浅谈属性

发布时间:2020-06-17 21:33:12 来源:网络 阅读:279 作者:li你不知道 栏目:开发技术

 

  属性是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方法内部所操作的实例变量是_属性名.


向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI