11.10 Перечисления в классах Objective-C

На верх  Назад  Вперёд

Быстрое перечисление (enumeration) в Objective-C представляет собой конструкцию, которая позволяет перечислять элементы в контейнере Cocoa в общем виде. Оно осуществляется с использованием цикла for-in в Objective-C.

На Objective-Pascal это было переведено с использованием существующего механизма цикла for-in. Поэтому функция ведет себя одинаково на обоих языках. Обратите внимание, что требуется активизация переключателя режима Objective-C 2.0.

Ниже приведен пример использования цикла 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('Один'),

    NSSTR('Два'),

    NSSTR('Три'),

    NSSTR('Четыре'),

    NSSTR('Пять'),

    NSSTR('Шесть'),

    NSSTR('Семь'),

    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);

    end;

  pool.release;

end.