使うばかりではアレなので、HorliX/Horos/OsiriX のソースコードを読む。
早速、AppController(現在でいうところの AppDelegate です)の init メソッド内の以下のところでつっかかる。
AppController.m
[[NSFileManager defaultManager] removeItemAtPath:[[NSFileManager defaultManager] tmpDirPath] error:NULL];
なんだよ tmpDirPath って(笑)。
もちろん、ノーマル NSFileManager にこんなメソッドはなく、おそらくどこかで拡張してんだろうなあと物色したら、Nitrogen というフォルダ(のサブフォルダ)に収められていた。
しかし、なんだろ、Nitrogen って?
Objective-C におけるクラスの拡張(というのだろうか?オーバーライドといっていい)は、カテゴリを使うという手法があるようだ。
カテゴリによって新たにつくられたクラスは、慣例的に「元のクラス+特徴」というファイル名を持つ。
だから、上の例では NSFileManager+N2.h と NSFileManager+N2.m で NSFileManager の拡張機能を担っている。
この N が Nitrogen から来ているのでは?と想像はつくが、なぜ Nitrogen というネーミングにしたんだろうねと疑問に思ったという次第です。
