0

什么时候应该使用全局变量,什么时候应该使用类变量,为什么?

我希望您的经验和想法与我们这些平台的新手分享。

例子:

让,我需要在图层上跟踪触摸事件的时间戳和位置(例如触摸开始、结束)。我可以使用实现触摸事件的类的全局变量或类变量来跟踪它。我应该怎么办?

问候,

-萨达特

4

2 回答 2

2

这不是特定于 Objective C 或 iPad 系列设备的问题。

变量应该具有它们需要的最小“可见性”和“持续时间”,仅此而已。

您必须提出一些非常有说服力的理由来尝试通过我们的代码审查流程获取全局变量。它们几乎总是可以用更合适的东西代替。


回应您的评论:

我不知道全局/类变量如何影响内存。

这里有一个很好的片段,详细说明了如何执行类级变量。这些是普通的 C 文件范围变量,因此它们在文件外部不可见,但您只能为类获得一个,而不是为您实例化的每个对象获得一个。

从这个意义上说,它们具有全局的优点(最小的存储空间,并且值仍然可以读取)而没有缺点(污染全局名称空间并使类外部的代码可以更改它)。

而且,如果不需要在文件之外读取它,就不要提供initCount方法。

于 2010-07-12T06:02:24.303 回答
1

这是一种翻转的答案,但根本不使用全局变量——坚持使用类方法和预期的封装。其他任何事情,你都会从黄昏到黎明与可可图书馆战斗。如果你遵循他们的模式,包括类方法、封装、委托等——你会以相对较少的努力取得巨大的进步。

在我的努力中,我可能认为将某些东西称为“全局变量”的唯一地方是项目范围的常量 - 所以根本不是变量,但有时在整个项目中非常需要一个常量(想到 TableViewCell 标识符)

于 2010-07-12T05:56:33.003 回答