2011-02-28 88 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); 
之後再次設置屬性列表