Ti.App.VariableName 和 Ti.App.Properties 之间的区别

Difference between Ti.App.VariableName & Ti.App.Properties

在Titanium中,下面两行代码有什么区别?

Ti.App.currentUser = "user1";

Ti.App.Properties.setString("currentUser", "user1");

Ti.App.Properties :

App Properties 模块用于以 property/value 对的形式存储应用程序相关数据,这些数据在应用程序会话和设备电源循环之后仍然存在。

tiapp.xml 文件中的应用程序属性 可以使用这些 API 访问 tiapp.xml 文件中定义的应用程序属性。应用 属性 是在具有 <property> 元素的根级 <ti:app> 元素内定义的。使用 name 属性定义您的 属性 名称并将该值与 <property> 元素内联。例如,要定义一个名为 foo 的应用程序 属性,其值为 42:

<?xml version="1.0" encoding="UTF-8"?>
<ti:app xmlns:ti="http://ti.appcelerator.org">
    <property name="foo" type="string">42</property>
</ti:app>

参考:http://docs.appcelerator.com/platform/latest/#!/api/Titanium.App.Properties

Ti.App.VariableName 存储了一个非持久变量,仅供 App 运行时使用。

顶级App模块主要用于在运行时访问应用程序的信息,以及发送或监听系统事件。

App 模块公开了 tiapp.xml 文件中设置的一些属性。

其中三个属性,应用程序名称、ID 和 URL,必须在创建应用程序时指定。

虽然在创建项目后可以通过编辑 tiapp.xml 文件更改大多数值,但 GUID 是自动生成的,不应更改。

更多详情Titanium.App

最后,如果你想在 tiapp.xml 文件中存储和检索值,你应该使用 Titanium.App.Properties

Abada 很好地解释了差异,但我要强调的是,您应该 向 Titanium 代理对象添加任何自定义属性,例如 Ti.App。这是 bad practice 因为它可能会导致内存泄漏和不可预测的行为。这些对象不是 100% JS,而是桥接到 Obj-C/JAVA/C+