2011-10-17 21 views
2

我正在使用Titanium Appcelerator mobile API 1.7.2。使用Titanium Appcelerator mobile添加元素後的空陣列1.7.2

當創建一個數組時,我收到了一些奇怪的結果。這是我的語法嗎?

container.textBoxArray = new Array(); 
container.textBoxArray[0] = createPasswordTextField(options, '0%'); 
container.textBoxArray[1] = createPasswordTextField(options, '25%'); 
Ti.API.log(container.textBoxArray == null); 
Ti.API.log('len: ' + container.textBoxArray.length); 

輸出的結果分別爲0(對於false)和'len:0'。有人知道爲什麼

亞當

編輯: createPasswordTextField基本上是

function createPasswordTextField(options, left){ 
    return Ti.UI.createTextField(options...) 
} 
+0

結果如下: 'container.textBoxArray = [createPasswordTextField(options,'0%'),createPasswordTextField(options,'25%'),createPasswordTextField(options,'50%'),createPasswordTextField(options,' 75%')];' 成功創建數組。 這是Ti.API.log()崩潰,所以我評論他們和...它的作品?我不明白這個平臺。 –

回答

0

我一直有與鈦和陣列過問題。你可以做的,就是試試這個:

container.textBoxArray = []; 
container.textBoxArray.push(createPasswordTextField(options, '0%')); 
container.textBoxArray.push(createPasswordTextField(options, '25%')); 
Ti.API.log(container.textBoxArray == null); 
Ti.API.log('len: ' + container.textBoxArray.length); 
+0

這是我以前的語法,它的工作原理。但是,當我嘗試在稍後訪問數組時,內容已消失。我想也許這是一個記憶的生命問題,所以我正在嘗試不同的語法。 –

0

日誌語句應該是這樣的,查看陣列內容

Ti.API.log(JSON.stringify(container.textBoxArray)); 
0

我遇到這一點。向TiProxy對象(View,Window,按鈕等)添加數組時,它無法按預期工作。您需要操作陣列'關閉'代理,然後重新設置它。我不知道這是一個bug還是僅僅是TiProxy對象上屬性的限制。下面是表現在iOS相同的鈦移動SDK 1.7.5下的一個例子:

var proxy = Ti.UI.createView(); //this can be any TiProxy object 

proxy.someArray = []; 
proxy.someArray.push('1'); 
proxy.someArray.push('2'); 
Ti.API.info("Array modified directly on TiProxy object"); 
Ti.API.info(proxy.someArray); 

var myArray = []; 
myArray.push('1'); 
myArray.push('2'); 
proxy.someArray = myArray; 
Ti.API.info("Array modified outside TiProxy object"); 
Ti.API.info(proxy.someArray); 

proxy.someArray.push('3'); 
Ti.API.info("This will be unchanged"); 
Ti.API.info(proxy.someArray); 

var changeArray = proxy.someArray; 
changeArray.push('3'); 
proxy.someArray = changeArray; 
Ti.API.info("This is how you must do it."); 
Ti.API.info(proxy.someArray); 

回報:

[INFO] Array modified directly on TiProxy object 
[INFO] [] 
[INFO] Array modified outside TiProxy object 
[INFO] [ 1, 2 ] 
[INFO] This will be unchanged 
[INFO] [ 1, 2 ] 
[INFO] This is how you must do it. 
[INFO] [ 1, 2, 3 ] 

找出Android上的水煤漿被很多困難bacause Ti.API.info(proxy.someArray);只返回一個對象。參考。