iPhoneアプリは投げ捨てられる
最近、iPhoneのアプリケーションを作っている。iPhone特有の制限事項が多いとは言え、その昔、CocoaでMacOS Xのソフトを作っていた頃の知識やノウハウがそのまま使えることに少々驚く。ベースがMacOS Xなので当たり前と言えば当たり前のことだけど、なかなか凄いシステムだ。
サンプルコードを相手に色々試していたら、ある時iPhone上で動かしていたアプリケーションが異常終了してしまった。さて、原因は?と思いつつXcodeの「オーガナイザ」から「Device Logs」画面を開いてみたら、こんなログが残っていた。
Free pages: 372 Wired pages: 7187 Purgeable pages: 0 Largest process: foo Processes Name UUID Count resident pages itunesstored <a8f2465afb39736949dab1b632a7619a> 540 foo <a515b0826b7b14d76ab18f1a48a8ba56> 11483 (jettisoned) (active) syslog_relay <a201e1687609c1e1cce46e2bc019abdd> 65
MacOS X付属の辞書によれば、"jettison"とは「(緊急時に船飛行機を軽くするための)投げ荷, 船外[機外]投棄」とのこと。メモリを使いすぎたので、iPhone OSから強制終了させられたらしい。UNIX系の流儀なら冷たく"killed"と表現されるはずだが、この辺のユーモアの効いた表現は相変わらずAppleらしいと思う。