目前,在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/