0

假设我有一个 UISegmentedSwitch 供用户设置公制或英制度量

然后我可以在代码的各个部分测试它的状态,但是如果条件是我认为的那样,我是否在询问中浪费了我的时间(和周期)?

在其他语言中,我通常将变量/标志设置为乘数,默认值为 1(结果没有变化),另一个是需要转换的值(例如 3.048)。

这样就不需要测试,如果计算时发生其他事情,它不是额外的方法嵌套。

但它会进入全局变量领域吗?即使在许多地方都需要这样的标志,如果只有一个这样的标志是不是很糟糕?

也许我应该创建一个只有一个属性的自定义类,或者让它成为 viewController 的一个属性,但是所有这些都涉及到 cpu 处理,就像对电池寿命或 UI 响应性征税一样?

这里的“通常”是什么?

4

2 回答 2

1

有些人认为全局变量是邪恶的,并且像大多数其他东西一样,如果它们被滥用,它们可能会被滥用。但是不应该将这样的变量设为全局变量的想法是愚蠢的。

如果您要大量使用它并将其限制为只读,除了一个位置,我会忘记反对者并继续使用它。如果它不会被大量引用,您可以将其设置为在类之间传递的属性,但这很痛苦。

另一种选择是一个单例来保存“全局”,如下所示:

http://maniacdev.com/2009/07/global-variables-in-iphone-objective-c/

IMO,偶尔使用全局变量的兴奋过度了。在某些时间和地点,它才有意义。

于 2013-04-07T04:08:21.117 回答
0

我认为这里的“正常”是使用 [NSUserDefaults standardUserDefaults] 并让它持续存在。

您正在根据此值在其他地方的代码中做出决策。您似乎也可能希望在应用程序的使用之间保持此值,以便维护他们的选择。

[[NSUserDefaults standardUserDefaults] boolForKey:kUsesMetric];在我的编程组中将其称为“规范”。

于 2013-04-07T04:18:01.380 回答