この間Cocoaセミナーに行って来たときに、面白い現象を見つけたので忘れないうちにメモ。

最近はもうずっとことえりを使わずにAquaSKKを使っている。SKKに慣れてしまうともう他のIMEを使う気になれないのだけど、Unixは言うにおよばずMacでもWinでもSKKがあるので、どこでも同じ操作感で日本語入力が出来て快適!もう手放せない!

Leopardにアップグレードしたときは若干不安ではあったんだけど、今日に至るまでこれと言った問題もなく動いて来たので特に気にせず使ってきた。

GCを有効にするとあれ…?

ところが、こないだついにAquaSKKが使えない事態に遭遇した。Cocoaセミナーでは演習と称してRSSリーダーを作っていたのだけど、Xcodeのコンソールでログを見てたら、どう見ても自分のアプリと無関係なエラーログが表示された。

2008-02-23 15:40:44.392 CoreRSSReader[625:10b] Error loading /Library/InputManagers/SIMBL/SIMBL.bundle/Contents/MacOS/SIMBL:  dlopen(/Library/InputManagers/SIMBL/SIMBL.bundle/Contents/MacOS/SIMBL, 265): no suitable image found.  Did find:
	/Library/InputManagers/SIMBL/SIMBL.bundle/Contents/MacOS/SIMBL: GC capability mismatch
2008-02-23 15:40:45.051 CoreRSSReader[625:10b] Error loading /Library/Components/AquaSKKInputMethod.component/Contents/MacOS/AquaSKKInputMethod:  dlopen(/Library/Components/AquaSKKInputMethod.component/Contents/MacOS/AquaSKKInputMethod, 262): no suitable image found.  Did find:
	/Library/Components/AquaSKKInputMethod.component/Contents/MacOS/AquaSKKInputMethod: GC capability mismatch

んん?SIMBL?AquaSKK?なんでなんで?

もちろんセミナーでSIMBLでプラグインを使うような高度なものを作るわけないし、テキストフォームだってIBでNSTextFieldを使ってるだけで別にオレオレカスタムViewでも何でもない。で、よく見たらGC capability mismatchと。ああなるほど。セミナーで作ったアプリはGCを有効にしてコンパイルするように言われたのだけど、SIMBLやAquaSKKはGC無効でコンパイルしてあるはずなので、それで読み込めてなかったのか。てことは、SIMBLやAquaSKKをGC有効にしてコンパイルすれば不整合が起きず普通に日本語入力できるようになるわけだ。

あれ、でもさぁ

確かLeopard発売当初はSIMBLが使えなかったのだけど、今はSIMBLもLeopard対応してるし、AquaSKKは当初からSafariやMail.appでも日本語入力できてた。てことはLeopardの標準アプリはGCを使ってないということだろうか。じゃあ、逆にAquaSKKをGC有効でコンパイルすると普通のアプリで使えなくなりそうだけど、その辺どうなんだろう。あとで調べてみるか。