2016-06-20 11 views
0

Ich habe eine .js-Datei mit einem Fenster und dann füge ich alle meine Layouts zu diesem Fenster.Entfernen var Objekt aus dem Speicher in Titan

first.js

var Win = Ti.UI.CreateWindow({ 
    backgroundColor : 'white' 
}); 
Win.open(); 

secun.js

var View = Ti.UI.createView({ 
    height : Ti.UI.SIZE, 
    width : deviceWidth, 
    backgroundColor : 'white' 
}); 

Ti.UI.CurrentWindow.add(View); 

var label = Ti.UI.createLabel({ 
    text : "Test", 
    color : 'white', 
    height : deviceHeight * 0.090, 
    width : deviceWidth, 
    backgroundColor : 'transparent', 
    textAlign : 'center', 
    font : { 
     fontSize : deviceHeight * 0.0285, 
     fontWeight : 'normal' 
    } 
}); 

View.add(label); 

die Ansicht I wie folgt machen zu entfernen:

Ti.UI.CurrentWindow.remove(View); 

Als ich durch diese, die Speicher belegt durch die View und Label sind veröffentlicht oder ist es notwendig, etwas anderes zu tun, um den Telefonspeicher freizugeben? Wie setzt man Variablen auf Null, so dass die Ti-Objekte nicht mehr assoziiert sind und vom Garbage Collector bereinigt werden können?

Das Problem des Aufkochens von Variablen auf Null in meinen Projektrelais in der Tatsache, dass einige Variablen innerhalb von Funktionen erstellt werden und dann außerhalb dieser Funktion nicht verfügbar sind.

Antwort

2

Wenn Sie nicht auf eine Ansicht oder ein Label zugreifen möchten, erstellen Sie keine Variable dafür. Für z. wenn Sie nicht label zugreifen, werden anderswo (nur auf View Zugabe), dann wird empfohlen, dass Sie direkt das hinzufügen label als:

View.add(Ti.UI.createLabel({ 
    text : "Test", 
    color : 'white', 
    height : deviceHeight * 0.090, 
    width : deviceWidth, 
    backgroundColor : 'transparent', 
    textAlign : 'center', 
    font : { 
     fontSize : deviceHeight * 0.0285, 
     fontWeight : 'normal' 
    } 
})); 

für mehr bitte einen Blick in http://docs.appcelerator.com/platform/latest/#!/guide/Managing_Memory_and_Finding_Leaks http://www.tidev.io/2014/03/27/memory-management/

+0

haben und wie kann ich den Speicher von Variablen freigeben, die ich erstellt habe und auf die ich an anderen Stellen meiner Funktion zugreifen muss? –

+0

@Manuel_Rodrigues dafür können Sie auch die Methode 'removeAllChildren()' einer Ansicht verwenden, bevor Sie diese Ansicht entfernen. http://docs.appcelerator.com/platform/latest/#!/api/Titanium.UI.View-method-removeAllChildren – Swanand