1.フォルダ階層を走査する時、ファイルパッケージの中まで見に行ってしまい、処理に時間がかかった →パッケージの中身を見ないようにした パッケージかどうかは、NSWorkspaceクラスの isFilePackageAtPath: で判定できる。
2.ファイル数が多いと処理に時間がかかるので途中でキャンセルできるようにマルチスレッドにした 2.1.AppKitはスレッドセーフでない →GUIの処理(テキストの表示更新など)はメインスレッドで行なう必要がある performSelectorOnMainThread:withObject:waitUntilDone: などが使える
3.画像データへの処理を繰り返し行うため、メモリの扱いに注意が必要 →1ファイルの変換処理ごとにNSAutoreleasePoolを用意(alloc&release)した
4.infのコメントには日本語が使われている場合がある →infファイル中の日本語はShiftJISコードが使われている。 Mac OS X標準のUTF-8ではないのでエンコーディングに注意が必要
5.複数のファイル/フォルダをアプリアイコンにドロップした時の処理が10.2.8までと10.3以降で異なる 10.2.8までは1つずつ application:openFile: が呼ばれるが、 10.3以降では application:openFiles: にNSArrayが渡される。
6.10.4以降ではファイル書き込みのメソッドが変更されている 例えば、NSStringクラスの writeToFile:atomically: は10.4ではdeprecated 10.4ではwriteToFile:atomically:encoding:error: を使う よって、実行環境に応じてメソッドを使い分けるために respondsToSelector: を使って場合わけする
7.Cocoaバインディングが使えるのは10.3以降 →FFCではCocoaバインティングは使用しなかった
8.NSApplicationクラス requestUserAttention: ではアプリが前面にあるときはDockアイコンはバウンドしない
9.デフォルトの優先度で処理スレッドを動かすとGUIの反応が非常に遅くなった →処理スレッドの優先度を0.4に設定した。[NSThread setThreadPriority:0.4]
10.NSURLクラスの URLWithString メソッドにファイルパスを渡すとき、パスの中に日本語が含まれている場合に戻り値がnilになった。 →URLWithString:ではなく fileURLWithPath: を使うとOK。