设计决策属性与变量

时间:2013-04-07 03:35:54

标签: ios objective-c

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

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

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

这样就没有必要进行测试了,如果在计算中还有其他事情发生,那么它就不是额外的方法嵌套。

但它是否进入全球变量领域?如果只有一个这样的旗子,即使在许多地方都需要这样的旗子,它会如此糟糕吗?

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

什么是通常'在这里?

2 个答案:

答案 0 :(得分:1)

有些人认为全球变量是邪恶的,像大多数其他东西一样,如果他们被滥用,他们就可以。但是像这样的变量不应该变成全局的想法是愚蠢的。

如果您要大量使用它并将其限制为只读,除了一个位置,我就会忘记反对者并坚持下去。如果它不会被大量引用,你可以使它成为一个从一个类传递到另一个类的属性,但这很痛苦。

另一种选择是单身人士持有"全局"如下所示:

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

IMO,偶尔使用全局变形的兴奋是过度的。有时候和地方才有意义。

答案 1 :(得分:0)

我认为这里的“正常”是使用[NSUserDefaults standardUserDefaults]并保持不变。

您正在基于此值在其他地方的代码中做出决策。您可能希望在App的使用之间保持此值,以便保持其选择。

[[NSUserDefaults standardUserDefaults] boolForKey:kUsesMetric];称为我的编程小组中的“常态”。

相关问题