黑马程序员技术交流社区
标题:
关于@property和protect的区别
[打印本页]
作者:
噜噜噜sir
时间:
2015-10-6 16:39
标题:
关于@property和protect的区别
在OC中,设置成员变量上,建议使用@property,可以自动生成set/get方法。
但是,为什么不直接用protect变量呢?
如果直接用protect变量,完全可以达到使用set/get方法的目的,即禁止外部访问。
同时,如果在用@property时有重写get的需求的话,那么单独写protect就OK了。
因此,感觉@property就是很鸡肋的东西。貌似唯一的用处就是可以在子类中继承父类的set和get方法。
求大神解惑。
作者:
A侠
时间:
2015-10-6 16:41
????????????????
作者:
啦啦啦啦你
时间:
2015-10-6 17:08
@property是编译器指令,个人理解是Apple为方便开发者,降低敲击代码工作量而作的优化。
如果实例变量非常多,靠我们手动去编写setter和getter是非常重复和枯燥的工作,这时候@property可以派上用场,不用再一一实现setter和getter。
但老师也讲了,@property既有好处也有缺点,好处是方便,高效率,缺点是不够灵活。如果我们想在setter中利用条件控制实例变量的设定,那必须手动写,而不能使用@property.
作者:
啦啦啦啦你
时间:
2015-10-6 17:10
又看了一遍你的提问,@property的作用主要是简化写法,而不是达到禁止外部访问的目的。
作者:
超の
时间:
2015-10-6 18:14
挺好的!支持一下
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2