首页 > 代码库 > 【iOS开发】@property跟成员变量区别
【iOS开发】@property跟成员变量区别
@property在xcode 4.5之前只是单纯的告诉编译器,“我在后面实现了对那个变量的setter和getter方法,你放心吧”,但是如果你不写synthesize配合的话就会出错。synthesize才是代替setter和getter的关键部分。
@synthesize在xcode4.5之前是配合@property使用,帮助你隐式了实现了一个setter和getter。如果你没有在interface里声明变量,它会帮你隐式的创建一个已下划线开头的同名变量,比如@synthesize myName = _myName;
在xcode4.5以后,由于改进了llvm编译器。@synthesize的工作全部由@property完成了,也就是说只需要声明@property就可以完全的创建一个变量。
至于interface里声明的变量和property声明的变量区别。我认为有两点:
1.放在.h文件里的property是一个public属性,可以供外部类访问。
2.property和ivars声明,本来就是两个东西,一个是通过setter和getter去访问对象,而另一个是直接访问。property可以通过setter实现数据绑定,而ivars是不行的.
所以,老外的一些建议是:
1.如果只是单纯的private变量,最好声明在implementation里.
2.如果是类的public属性,就用property写在.h文件里
3.如果自己内部需要setter和getter来实现一些东西,就在.m文件的类目里用property来声明
【iOS开发】@property跟成员变量区别
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。