C ▁applications ▁developed ▁for ▁mac OS ▁that ▁make ▁use ▁of ▁the ▁above ▁improvements ▁for ▁Object ive - C ▁ 2 . 0 ▁are ▁in compatible ▁with ▁all ▁operating ▁systems ▁prior ▁to ▁ 1 0 . 5 ▁( Le op ard ). ▁Since ▁fast ▁enumer ation ▁does ▁not ▁generate ▁exactly ▁the ▁same ▁bin aries ▁as ▁standard ▁enumer ation , ▁its ▁use ▁will ▁cause ▁an ▁application ▁to ▁crash ▁on ▁Mac ▁OS ▁X ▁version ▁ 1 0 . 4 ▁or ▁earlier . ▁ ▁Block s ▁ ▁Block s ▁is ▁a ▁non standard ▁extension ▁for ▁Object ive - C ▁( and ▁C ▁and ▁C ++) ▁that ▁uses ▁special ▁syntax ▁to ▁create ▁clos ures . ▁Block s ▁are ▁only ▁supported ▁in ▁Mac ▁OS ▁X ▁ 1 0 . 6 ▁" S now ▁Leop ard " ▁or ▁later , ▁iOS ▁ 4 ▁or ▁later , ▁and ▁GNU step ▁with ▁lib obj c 2 ▁ 1 . 7 ▁and ▁compiling ▁with ▁cl ang ▁ 3 . 1 ▁or ▁later . ▁ ▁# include ▁< stdio . h > ▁# include ▁< Block . h > ▁typedef ▁int ▁( ^ Int Block ) (); ▁ ▁Int Block ▁Make Counter ( int ▁start , ▁int ▁increment ) ▁{ ▁ <0x09> __ block ▁int ▁i ▁= ▁start ; ▁▁ <0x09> return ▁Block _ copy ( ▁^ ▁{ ▁ <0x09> <0x09> int ▁ret ▁= ▁i ; ▁ <0x09> <0x09> i ▁+= ▁increment ; ▁ <0x09> <0x09> return ▁ret ; ▁ <0x09> }); ▁ ▁} ▁ ▁int ▁main ( void ) ▁{ ▁ <0x09> Int