【问题标题】:Setting a property list with Titanium Appcelerator使用 Titanium Appcelerator 设置属性列表
【发布时间】:2011-02-28 10:15:08
【问题描述】:

我在 OS X 上使用最新的 Mobile SDK (1.6)。 我有这段代码:

var globalArray = [
        {title:'foo',value:'yes'},
        {title:'bar',value:'no'}
]; 

Titanium.App.Properties.setList('globalArrayProperty',globalArray);
Titanium.App.Properties.getList('globalArrayProperty')[0].value = 'it works!';
Titanium.API.info('first value : ' + Titanium.App.Properties.getList('globalArrayProperty')[0].value);

我对其进行了简化,以便向您解释问题所在。 所以,我创建了一个包含几个对象的数组。 然后,我根据这个数组设置一个属性,然后影响第一个对象的新值。 但是当我调用显示属性时,而不是显示“它有效!”字符串,它显示第一个“是”。

我尝试添加几行:

Titanium.App.Properties.setList('globalArrayProperty',globalArray);
var arr = Titanium.App.Properties.getList('globalArrayProperty');
arr[0].value = 'it works!';
// This works
Titanium.API.info('first value with arr: ' + arr[0].value);
// This doesn't work
Titanium.API.info('first value : ' + Titanium.App.Properties.getList('globalArrayProperty')[0].value);

所以中间 var 'arr' 获取属性,设置它但不能对属性应用修改。

我错过了什么吗?

谢谢,

问候。

【问题讨论】:

    标签: properties titanium appcelerator


    【解决方案1】:

    我认为你需要在更新数组后重新设置属性列表

    Titanium.App.Properties.setList('globalArrayProperty',globalArray);
    var arr = Titanium.App.Properties.getList('globalArrayProperty');
    arr[0].value = 'it works!';
    // This works
    Titanium.API.info('first value with arr: ' + arr[0].value);
    
    // save changes to property list
    Titanium.App.Properties.setList('globalArrayProperty',arr);
    
    // This doesn't work
    Titanium.API.info('first value : ' + Titanium.App.Properties.getList('globalArrayProperty')[0].value);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-03-05
      • 1970-01-01
      • 2014-07-21
      • 2011-11-20
      • 2011-08-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多