也许这个问题也可以被要求删除任何其他UI元素的方法,不仅仅是为了View,但在我的情况下,我已经从另一个视图中删除了一个元素(一个视图)。
$.basewincontent.remove($.detailsoireescreen);
这是为了优化我的应用程序内存。首先,我想问一下这个元素是否真的从内存中删除了,我自己做了一些测试但是不知道,这些是测试代码:
Ti.API.info("typeof $.detailsoireescreen : "+typeof $.detailsoireescreen);
Ti.API.info("test if $.detailsoireescreen is null : "+$.detailsoireescreen == null);
typeof $.detailsoireescreen
始终返回
控制台中的“typeof $ .detailsoireescreen:object”
和$.detailsoireescreen == null
始终返回0
用于该试验中,我期待将typeof是“未定义”的元件已被移除之后和布尔值是1(如果这是(这是假)由钛为布尔返回值“真”,而不是0
我的第二个问题是:因为我正在使用Alloy而我正在xml上写我的UI元素所以我不是自己创建这些元素但是在我删除之前第一次从xml中读取它们他们。因此,在我的第一个问题中删除它们之后,我可以再次从xml本身再次加载它们吗?或者我是否需要创建从未创建的所有内容?
最诚挚的问候。
答案 0 :(得分:1)
我认为您不应该担心javascript对象,而只关注真正的本机UI组件,例如您要在此处删除的UIView。从视图层次结构中删除它足以获得它占用的内存。您可以通过在删除视图之前和之后使用Ti.Platform.availableMemory跟踪应用程序的可用内存来验证这一点。有关详细信息,您还可以尝试使用Instruments,xcode工具进行性能分析。
您可以重复使用它们,只要您在第一次删除它们后不会使它们无效,因为您将丢失然后引用它们并且它们将被销毁。