F450

2005年09月11日の日記 ‣ あれこれ。

古いデータが多く含まれているため、デッドリンクがあったり記事等を正しく表示できなかったりする可能性があります。また、これらの日記に対する新たなコメントやトラックバックは受け付けていません。予めご了承下さい。
2005年09月11日(日)の日記

あれこれ。

選挙権を得てから投票は一度も欠かしたことはないので、例に洩れず今日も行って参りました、投票。
我が母校が投票所。
いやぁ、校舎の中に入ると何故か不意に当時を思い出したりなんかしたりして。
ん?
今までは投票は校舎ではなく体育館だったような…。
なになに?
たゃーくかんはアスベストがあるで使えぇせんのだわ。
なるほど。
6年間アスベスト吸い放題だったわけか。
ガッテンガッテン。
卒業10年目にして知る真実。
────────────────────
ある日、エリザベスは
「あるファイルを作成日・ファイルタイプなどの付加情報やファイルのアイコンとともにアーカイブ化したあとで、非アーカイブ化して同じ付加情報・アイコンをもった同じファイルを作成する」
というプログラムを考えていました。
その為には、非アーカイブ化して保存した先のファイルの付加情報とアイコンをいじる必要がありました。
最初、エリザベスはNSFileWrapperというクラスを使うことを思いつきました。
NSFileWrapperは、その名の通り、ファイルの内容も付加情報もアイコンも纏めて一つのオブジェクトとして扱えるクラスでした。
しかし、NSFileWrapperには欠点がありました。
他のファイルに書き出したりアーカイブ化したりすると、付加情報の一部やアイコンなどの情報が失われてしまうのです。
そこで、エリザベスは考えました。
NSFileWrapperのインスタンスメソッド、
- (NSDictionary *)fileAttributes 
- (NSImage *)icon 
などで、付加情報やアイコンを事前に取り出しておいて、アーカイブ化すればいいのだと。
非アーカイブ化のときは、NSFileManagerのインスタンスメソッド、
- (BOOL)createFileAtPath:(NSString *)path contents:(NSData *)contents attributes:(NSDictionary *)attribute 
を使えばいいのだと。
しかし、エリザベスはまた愕然としました。
このままでは、アイコンを設定できないのです。
NSFileWrapper, NSFileManagerでは、ファイルのアイコンを変更することはできないのです。
もちろん、NSFileHandleでは到底無理です。
それでも、神様は見捨てませんでした。
NSWorkspaceというクラスを与え給うたのです。
NSWorkspaceには、
- (BOOL)setIcon:(NSImage *)image forFile:(NSString *)fullPath options:(unsigned)options 
というメソッドがあったのです。
これで万事解決です。
しかし、手放しでは喜べませんでした。
このメソッドは、Available in Mac OS X v10.4 and later.
………!
そうです。
たかがファイルのアイコンを変更するソフトでも、Cocoaを使う限り“Tiger以上”がシステム条件になってしまうのです。
なんだ馬鹿野郎。
2005/09/12(月) 00:45:10 (JST)

この日記へのコメント

  1. からす
    初めまして、からすです。
    NSFileWrapperにある
    - (void)setIcon:(NSImage *)anImage

    Availability

    * Available in Mac OS X v10.0 and later.
    となってますがどうでしょうか
    2007/03/31(土) 22:24:41.0629 (JST)
  2. YOCKOW@ひあるび管理人
    >からす さん
    ご指摘ありがとうございます。
    確かにちゃんとメソッドがありますね。
    ただ、この日記を書いた二年前に自分が何を考えていたのかが思い出せないことが問題だという気もします。(あれ
    2007/04/01(日) 16:09:08.1261 (JST)

この日記へのトラックバック

この日記へのトラックバックはありません。