Titaniumアプリを再起動した際にMapViewの以前表示していた位置を表示したいが、TitaniumのMapViewが初期化時にregionChangedを何度も呼び出すという謎の挙動をするためにうまくいかない。この挙動は本家のQ&Aにも報告されている。いう状況を無理矢理回避したメモ。基本的にはRegionが変更されるたびにアプリケーションプロパティに記録する再起動の際にアプリケーションプロパティに記録してあるRegionを設定する記録してあるRegionが無ければデフォルトのRegionを設定するといったシンプルなことをしたい。MapViewの初期化途中にlatitudeDeltaが何度も変更されるため、その中途半端なRegionがセットされてイヤンなかんじになってしまう。そこで以下のような処理を施す。Regionの変更を記録するのはマップ表示後1秒してから(initCompleteというフラグを定義して、1秒後にそのフラグを立てる)1秒経っていない時にregionChangedが発生したら強制的に記録してあるRegionに戻す戻した際にregionChangedが発生して無限ループ(といっても1秒間だけだが)するのでRegionの値が記録してあるRegionならsetRegionを呼び出さないなんというその場しのぎ。コード例MapHelperは独自に定義したクラス。内容が気になる人は以前のユニットテストの記事参照。}});Titaniumはたまに変なはまりどころがある。2011/01/26追記ソースが間違っていたので修正。CoffeeScriptを手で直したもんだからvar付けてなかったりとか括弧足りなかったりとかしてた。関連記事Titaniumでバウンドするアニメーションカーソルが上下にバウンドしているアニメーションはユーザーの注意を引く効果がある。Titaniumではそういうアニメーションが簡単に実装できるので使わない手はないでありましょう。別に深い話ではなくて個人でReactのテスト軽く書くときに何がいいかなとちょっと悩んだので。WebDriverを使うのが前提としてどの言語で書こうかなと。テストTitaniumでiOSのバックグラウンド処理10分間だけ待ってやる!ってiOSさんにバックグラウンド処理の時間をもらえます。Titanium検索:書いてる人サーバーサイドのインフラ構築とプログラミングをたしなむハーフスタックくらいのフリーランスプログラマー。カメラはペンタックス。