Titanium で困ったエラー Error : Change all rows children of TableView


TableViewRow がいくつかある状態で、例えば

  • 最初はデフォルト画像を表示させて
  • 後から全ての TableViewRow に add してある imageView.image を違う画像に差し替える

とかやりたい時に必ずエラーになってしまう。

imageView.image にアクセスするのが、rows[n].getChildren()[3].image だとして
2番目の tableViewRow だけを差し替える場合、

setTimeout(function(){
    tableView.data[0].rows[1].getChildren()[3].image = 'http://graph.facebook.com/1282639350/picture?type=square';
}, 3000);

これはちゃんと動く。

全ての tableViewRow を対象にしたいので、for で回して、

setTimeout(function(){
    for (var i = 0; i < data.length; i++) {
        tableView.data[0].rows[i].getChildren()[3].image = 'http://graph.facebook.com/1282639350/picture?type=square';
    }
}, 3000);

これはエラーになってしまう。

Titanium Studio のエラーメッセージ

[ERROR] Script Error = 'undefined' is not an object (evaluating 'tableView.data[0].rows[i].getChildren()[3].image = 'http://graph.facebook.com/1282639350/picture?type=square'') at list_friend.js (line 252).

多分、rows[i] のような数字以外の変数を入れてしまうと認識できないみたい。

フォーラムにも同じようなポストがあって、まだ解決できていないようだ。

どなたか解決方法を知ってらっしゃたら教えてくださいませ。