iPhoneアプリは投げ捨てられる

最近、iPhoneのアプリケーションを作っている。iPhone特有の制限事項が多いとは言え、その昔、CocoaMacOS 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らしいと思う。