2011-02-28 54 views
1

我与OS X的最新的移动SDK(1.6)工作 我有这样一段代码:设置属性列表与Appcelerator的钛

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); 

所以中间变种“的常用3”获取的属性,设置,但在财产不能应用修改。

我错过了什么吗?

谢谢,

问候。

回答

3

我认为你需要更新阵列

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); 
之后再次设置属性列表