在iphone sdk中创建全局变量的正确方法?

时间:2010-08-31 13:00:38

标签: iphone

有没有最好的方法来维护iphone sdk中的全局变量?如果我改变它,它会影响所有控制器,该iPhone应用程序的视图?

2 个答案:

答案 0 :(得分:1)

全球比赛很难看。最好使用包含所有数据的单例“Data Manager”类,然后使用通知或键值观察来更新ViewControllers的更改。

答案 1 :(得分:1)

Globals目前被认为是丑陋的,但它们是一种未受保护的预先分配的预初始化单例,50年前的所有计算机编程最佳实践(Knuth的第1版等等)都是如此。维护全局变量的最佳方法包括使用大量非常清晰的注释,以便在使代码更加模块化和可重用时(可能在代码大小中花费一些代价)时可以考虑其他事项。

要回答OP的问题,如果修改全局,那么任何控制器或视图(以及同一线程中没有“覆盖”全局名称的任何C或Objective C代码)读取全局将得到最新的价值。但这个新价值不会立即被“推”。在最终调用实际读取全局变量的某个方法之前,这些视图或控制器不会注意到任何新值。

如果您需要视图或控制器来更快地响应,那么您将需要通知或键值观察,而不仅仅是修改全局变量。