taoru's memo

Objective-c,cocos2d,など開発についてのメモ(andoroidも少しだけ)

Foundation.frameworkを検索対象に含める方法

Objective-cでのfor-inの仕様を調べていて、NSFastEnumerationに準拠しているクラスならfor-inが使えることがわかった。

そこで、どのクラスがNSFastEnumerationに準拠しているのか調べてみた。
この記事はprotocolに準拠しているクラスを探す方法についてのメモ。
結論から言うと、search navigatorで検索するのが一番早そう。

XcodeのOrganizerで調べる

Documentationで検索

XcodeのOrganizerを立ち上げ、DocumentationからNSDctionaryを検索
Conforms toの項目が準拠しているprotocolなので、ここにNSFastEnumerationが記載されていればforinが使える。
f:id:taorun:20130630001850p:plain

でもプロトコルに準拠しているクラスを探すのには向いてなさそう

しかし、OrganizerのDocumentationの検索窓にNSFastEnumerationと入れても、
NSFastEnumerationに準拠しているクラスは列挙されない。(見落としているだけかも?)

Xcodeのsearch navigatorで調べる

frameworkのヘッダファイルを検索対象に含めることができる。
つまりプロトコル宣言しているクラスを探すことができる。

search navigator -> 虫眼鏡アイコンクリック -> Show Find Options
f:id:taorun:20130630003609p:plain

"Find in" の And linked framworksにチェックを付ける
f:id:taorun:20130630004956p:plain

これでFoundation.framworkも検索対象に含まれるので、protocol準拠クラスを探すことができるようになった。


NSFastEnumerationに準拠しているクラスは、
NSArray, NSDictionary, NSHashTable, NSMapTable, NSOrderedSet, NSPointerArray, NSSet

QLOOKアクセス解析