選挙権を得てから投票は一度も欠かしたことはないので、例に洩れず今日も行って参りました、投票。
我が母校が投票所。
いやぁ、校舎の中に入ると何故か不意に当時を思い出したりなんかしたりして。
ん?
今までは投票は校舎ではなく体育館だったような…。
なになに?
たゃーくかんはアスベストがあるで使えぇせんのだわ。
なるほど。
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以上”がシステム条件になってしまうのです。
なんだ馬鹿野郎。