2011年6月19日日曜日

Cocoa FSEvent と SCEvents(3)

アプリ起動時にひとつだけ生成されるTab管理のControllerでSCEventsのインスタンスを生成する。
Tabにはこんなふうに


表示しているディレクトリのフルパスを保存してあるので、それをNSMUtableArrayにしてSCEventsに渡し、

[events startWatchingPaths:tabTitles];

てな具合でファイルシステム監視の開始。これで無事動いている。
試しにFinder上でファイル操作をしてみたら、自作アプリでもちゃんとファイルの移動などを感知できていた。便利じゃのお。

ただ、Tabを削除してみたら見事にアプリが落ちた。(^^;)Tabを削除する前に

if([events isWatchingPaths]) [events stopWatchingPaths];

をしないといけなかった。
アプリが落ちたときに気づいたのだが、監視するパスの数だけスレッドが分かれるらしい。うーむ、なんだかすごいことになるな。

さて、次は・・・いよいよ大きなサイズのファイルのコピーかな。

0 件のコメント:

コメントを投稿