selectorで死ぬので、@selectorの書き間違えだろうと思っていたら、そうではなく、スタティックライブラリ内に定義されたカテゴリ(ミキシンというよりもC#の拡張メソッドに近いのかな)の展開に失敗しているという問題だったらしい。調べるとすぐに-ObjCというリンカフラグを設定すれば良いということがわかって、まずさすがのアップルクォリティにびっくりする。最初にプロジェクトをウィザードのできそこないで生成した時に、Objective-Cのアプリケーションだということは指定しているのだから、既定で設定しておきゃいいじゃないか。20世紀の輝けるATL_MIN_CRTを思い出す。良く訓練されたCOMプログラマはリンクに失敗するとATL_MIN_CRTを反射的に削除するのと同様に、良く訓練されたiOSプログラマはselector認識不可が出れば、反射的に-ObjCを設定するのだろう。違いは、ビルドの時点か、実行時かで、21世紀になった分、判明するまで時間がかかるのが素晴らしい。設定してプロジェクトメニューからcleanしてbuild。実機にロードして......いや変わらないぞ。調べるとiOSの場合は-all_loadを付けろというのが出て来た。なんか古い資料っぽいので、そんなバグを修正していないのかとさすがのアップルクォリティに讃嘆しながら設定して、cleanしてbuild。実機にロードして......いや変わらないぞ。Xcode4以降はall_loadは不要と書いたものまで見つかる。付けても変化しないのだから確かに不要だわい、と納得さすがのアップルクォリティ。言ってもどうにもならないので、arされているはずだから分解してスタブコードを書いて無理矢理呼び出せるように人間リンカをしようかと、考えながら、しかしあまりに面倒くさいので、stackoverflowの関連しそうなやつを順に眺めていく。いうか、stackoverflowがたまに落ちていると実に困る。1行リプライにビンゴがあった。Xcodeを終了して、起動して、cleanしてbuildしろ、と書いてある。21世紀にもなって、プロジェクトのリンカ設定を変えたら、IDEもどきの再起動が必要なんだ。Studioの4だか5だかの頃に追いついたらしい。その後、all_loadを消して試したら、確かに問題ない。アップルのXcodeだということは、再起動が必要なんだな、あぶないあぶない。