2011-02-28

IconFamily


Cocoaで使ったことのあるライブラリやフレームワークを紹介してみよう企画第一回目は IconFamily

Mac OS X のアイコンサービス の Cocoa/Objective-c ラッパーです。
アイコン関係は Carbon なので面倒なのですが、これを使うとプロジェクトに4ファイル追加するだけで .icns やファイル・フォルダからカスタムアイコンを取得して NSImage へ、はたまた NSImage からサムネイルを作ってカスタムアイコンにする、などが Cocoa で簡単にできちゃいます。
ライセンスは MIT License なので使いやすいです。

私は指定パスファイルから作成した IconFamilyHandle がカスタムアイコンを持っているかどうかも知りたかったので適当にメソッドを足しました。
IconFamilyElement の elementSize が0以下だとカスタムアイコンがないっぽいのでこんな感じに。
- (BOOL) isCustomIcon
{
IconFamilyElement iconElem = (*hIconFamily)->elements[1];
Size elemSize = iconElem.elementSize;
if (elemSize > 0) {
return YES;
} else {
return NO;
}
}

もっと良い方法あったら教えてください。


OS10.6、10.5では問題なかったのですが、10.4ではどうもカスタムアイコンなしを取れてないようです。
時間ができたら調べてみます。
(5/30追記)


Scott Densmore: Objective-C / Cocoa Syntax Highlighter Part II>>Objective-C / Cocoa Syntax Highlighter を見つけたので既存ソースにぺたっとしてみました。


byT

2011-02-20

App Store レシートチェック機能追加準備手順


なんだか久々の更新です。

話題としては今更なのですが、App Store に対応させるためにはレシートチェック機能をつけないといけないのです。
が、これの準備段階の手順が公式資料だけだとちょっと苦労したのと日本語解説が見つからなかったので忘備録として。

  1. asn1c を Mac にインストール

  2. 公式資料からコピペで payload.asn1 作成(この名前は何でも良し)

  3. ターミナルで asn1c -fnative-types payload.asn1

  4. サンプルファイル converter-sample.c を削除
    ※これがあると Duplicate symbol エラーが出る。

  5. できたファイル群をプロジェクトに追加

  6. プロジェクト設定のビルド>検索パス>ヘッダ検索パス に asn1c のパスを追加(/opt/local/share/asn1c)


これでコンパイルが通るはず。まだエラーが出る場合はプロジェクト設定とかかな。
今やってる App Store 対応の仕事が終わったら、Hoshi をバージョンアップして App Store 対応させてみようかなーと思ってます。


byT