在objective-c中,属性和成员变量有什么区别,感觉好像用起来是一样的。

 我来答
优游自如
推荐于2017-11-26 · TA获得超过1012个赞
知道小有建树答主
回答量:233
采纳率:0%
帮助的人:185万
展开全部
属性可以用dot(.)语法,比如self.xxx,在外部调用也同样可以someClass.xxx。

属性实际上是对一组set和get方法的简单封装(oc的get方法没有get前缀),同样会自动生成一个私有的成员变量(名称为:下划线+属性名)。

成员变量无论是全局还是局部的,都只能在本类或当前函数中使用,在其之外的地方无法直接调用(可以通过间接的方式调用)。

在本类使用时,属性self.xxx会给私有的_xxx变量增加一次引用计数,相当于多retain了一次。如果不使用ARC,分别给普通变量和属性赋值,打印一下引用计数你就明白了。如果你使用ARC,完全不需要考虑引用计数相关的东西。

总而言之,如果你当前类需要被外部调用,而且需要方便访问某个变量,那就应该把这个变量设为属性。如果只是在类内部使用,使用普通变量和使用属性没有任何区别,就看个人习惯了。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式