そもそもの話
http://docs.appcelerator.com/titanium/2.0/index.html#!/apiを読む事。
サポートされていない関数やプロパティを実行/指定しても実機じゃ動かない。
Pickerが例外を出して落ちる
PickerRowのtitleに数値型を入れると発生する。
文字列型を入れよう。
Invalid type passed to functionが出る
TabGroup.addTabにundefinedを入れると発生する。
WebView
setScalesPageToFit(true)を実行しないと、bodyのwidthなどが画面と同じサイズにならないので注意。
alert
引数は省略しない。alert("")としないと警告が出る。
TableViewはWindowに入れないとTabGroupに入らない
createTab({window:createTableView()})みたいな事すると例外が出る。
めんどくさいね……
OperationalError: Could not decode to UTF-8 column 'path' with text
コンパイル時のゴミ? のせいで発生するっぽいエラー。
ユーザフォルダの.deltafyを削除するとうまく行く
生涯現役: OperationalError: Could not decode to UTF-8 column 'path' with text ...
addEventListenerで渡ってくるイベント
event.type イベント名
event.source イベントが発生したUIのインスタンス
TabGroup.addTabに直接Tabを入れてはいけない
Ti.UI.createTabGroup().addTab(Ti.UI.createTab());
こういうかんじのやり方だと、タブを何度か変更しているうちに「Adding an event listener to a proxy that isn't already in the context」が発生してWindowが更新されなくなる。
直接addTabに突っ込まなければよくて、変数に一度入れたり関数の戻り値として渡したりすればOK
……が、他にも発生条件があるっぽいので注意したい。
const group = Ti.UI.createTabGroup(); [Ti.UI.createTab(), Ti.UI.createTab(), Ti.UI.createTab()].forEach(group.addTab); //あるいはコレ→[{window:Ti.UI.createWindow()}].map(Ti.UI.createTab).forEach(group.addTab);
これも失敗する。
配列を一度変数に格納してからforEachを行えばOK
[iPhoneのみ?]addEventListenerを実行するとindex 1 beyond bounds [0 .. 0]が発生する
第一引数にイベントリスナーとして登録する関数を入れると発生する。
第一引数にはイベント名(clickとか)を書くこと。