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.