Swift

Swift:ツリー構造のディレクトリ

フォルダやファイルをツリー構造で表示させる方法を考えていました。

一方で、自力で作るためにバッファ(NSArrayの配列)のダイナミック管理をするメソッドを書き上げました。50行くらいの短いメソッドがふたつなのです。短い割にロジックがむずかしく、何回も机上デバッグしたあとでも、難解でした。

自作ツリー表示の良い点は、Table Viewなので細かいところまで制御可能で、これまでいくつか書いたコードとの互換性がいいことです。悪い点は、仮にうまく動いたとしても障害が出たときに手に負えなくなることです。

他方で、1年前に見つけたツリー構造のObjective-CサンプルプログラムをSwiftにコンバージョンすることも考えました。これは、過去3、4回トライして、いずれも力不足で失敗しました。よくわからない箇所があるのと、全ラインをSwiftにコンバージョンできなかったのが原因です。

今回もダメかなと思いました。しかし、コンバージョンは比較的簡単にできました。少しはSwiftが身についたのかもしれません。それで、動かしてみたら、1行だけは表示されました。それで、これだけできれば立派なものと、トレースを追いかけながら慎重にバグを潰しました。

結果、SwiftでNSTreeControlloerを使ったツリー表示ができる見通しが得られました。EXIFアプリやMesaClipに適用する場合、clicked RowとかIBAction、Copy and Dropが想定通り使えるかで機能制限が出てしまいます。この点について、検討する必要があります。

アイコン表示がまだできていません。これは、文字にする予定なので、現時点では深く追求しません。

でもせっかく作ったのだから、この方式で行きたい気もします。

スクリーンショット 2015-05-24 16.10.52

Categories: Swift, 技術