ページ

2008年11月3日月曜日

アプリケーションを開く(6)ソートする

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク

アプリの並びをソートする。ソートはアプリケーションの URLではなく名前で行う。現状名前のリストは持っていない。そこでアプリのURL、名前、アイコンを保持する小さなモデルクラスを用意し、ここに compare: メソッドを実装することにした。

AppEntry.h

@interface AppEntry : NSObject
{
NSURL* _url;
NSString* _name;
NSImage* _image;
}
@property (retain) NSURL* url;
@property (retain) NSString* name;
@property (retain) NSImage* image;


#compre: は nameで比較すれば良い。
- (NSComparisonResult)compare:(AppEntry*)entry
{
return [_name compare:entry.name];
}


その上で Launch Services API から取得したアプリ一覧を元に一旦 AppEntryのインスタンスを作り、配列へ入れておく。そしてその配列へ sortedArrayUsingSelector: を投げてやる。
NSArray* sorted_entry_list = [entry_list sortedArrayUsingSelector:@selector(compare:)];


できた。


サンプル:FindingAllApps-4.zip