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