Fast enumeration in Objective-C is a construct which allows to enumerate the elements in a Cocoa container class in a generic way. It is implemented using a for-in loop in Objective-C.
This has been translated to Objective-Pascal using the existing for-in loop mechanism. Therefore, the feature behaves identically in both languages. Note that it requires the Objective-C 2.0 mode switch to be activated.
The following is an example of the use of for-in:
{$mode delphi} {$modeswitch objectivec2} uses CocoaAll; var arr: NSMutableArray; element: NSString; pool: NSAutoreleasePool; i: longint; begin pool:=NSAutoreleasePool.alloc.init; arr:=NSMutableArray.arrayWithObjects( NSSTR('One'), NSSTR('Two'), NSSTR('Three'), NSSTR('Four'), NSSTR('Five'), NSSTR('Six'), NSSTR('Seven'), nil); i:=0; for element in arr do begin inc(i); if i=2 then continue; if i=5 then break; if i in [2,5..10] then halt(1); NSLog(NSSTR('element: %@'),element); end; pool.release; end.