目前,在Titanium中制作ios应用程序时,我必须将navgroup传递到所有窗口中。
这意味着始终将navgroup通过整个函数调用堆栈传递到启动窗口的部分。

function launchAboutWindow(mynavgroup)
{
var window = TI.UI.createWindow({navgroup: mynavgroup});
}


既然总是一样,那么仅仅拥有一个GLOBAL navgroup会不是一个坏习惯?而不是到处传递navgroup上下文?

function launchAboutWindow()
{
var window = TI.UI.createWindow({navgroup: GLOBALNAVGROUP});
}


这样做的负面后果是什么?

最佳答案

好吧,关于全局变量的事情是,它们始终保留在内存中,不会被垃圾收集器清除。这就是为什么最好避免将东西放到全球范围内的原因。

当然,每条规则都有例外。我认为,由于无论如何都要传递参考,因此您要使该对象(及其参考)保持活动状态。在我看来,只有在全球范围内保持这种状态才有意义-即使只是为了使您的代码更具可维护性-与保持正确性同样重要。

我不会对每个对象都这样做-每个案例都是它自己的。

顺便说一句-在Alloy中,Titanium为全局对象提供了一个特殊的命名空间(也不要滥用它!)。

另外,我建议您查看跨平台导航控制器:

http://www.appcelerator.com/blog/2013/08/a-cross-platform-navigation-group/

http://www.appcelerator.com/blog/2011/08/forging-titanium-episode-2-a-cross-platform-navigation-controller/

https://github.com/vuinguyen/Ti-Navigation-Controller

关于ios - Titanium iOS:全局导航组有什么问题吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26077249/

10-11 19:58