at_yasu's blog

ロード的なことを

Objective-C で for..in..

忘れないうちにメモ

PythonなどのLL言語ではfor..inでループが出来ます。Objective-CでもNSEnumeratorで似たようなことができますが、Objective-C2.0からはfor..in文が使えます。


Objectにfor..inの対応をさせるには、NSFastEnumerationというProtocolを実装する必要があります。

メソッドは一つで、下記のメソッドを実装する必要があります。

- (NSUInteger)countByEnumeratingWithState:(NSFastEnumerationState*)state 
                                  objects:(id*)stackbuf
                                    count:(NSUInteger)len;

参考:http://journal.mycom.co.jp/column/objc/108/index.html