加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

objective-c – 类扩展中的静态变量和变量有什??么不同?

发布时间:2020-12-16 09:44:37 所属栏目:百科 来源:网络整理
导读:静态变量“声明变量static将其范围限制为仅仅类 – 并且仅限于在文件中实现的类的一部分”(Apple doc). 而且我认为在类扩展中定义的变量只有在定义它的类中才有限制范围. 那是类似的! 类扩展中的静态变量和变量有什??么不同? 解决方法 静态变量与它定义的
静态变量“声明变量static将其范围限制为仅仅类 – 并且仅限于在文件中实现的类的一部分”(Apple doc).

而且我认为在类扩展中定义的变量只有在定义它的类中才有限制范围.

那是类似的!

类扩展中的静态变量和变量有什??么不同?

解决方法

静态变量与它定义的文件相关联.它不能从该文件的外部访问,并且在整个程序中只为它创建了一个存储位置.

存储的区别也适用于非静态全局变量 – 程序中只有一个变量.

类扩展中的变量同样限于对其声明的文件的可见性,但它是一个实例变量.您创建的每个类的实例都附加了一个新的存储空间.

如果您创建一个静态变量并从该类的多个实例更改其值,则每个实例都将看到相同的值. ivar不是这种情况 – 每个对象都可以更改并保留该变量的值.

(这就是为什么在ObjC中有时使用静态变量来模拟其他语言中存在的类变量的原因.)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读