Blocks

  1. Minner mye om closures, og brukes ofte for å
    1. kunne kjøre små kodeblokker samtidig
    2. iterere over objekter i et array
    3. kjøre kode som et callback
  2. Man definerer en block med ^{ /*min fine block*/ }
    1. Alt inne i blocken kan lese variabler på utsiden
    2. Variabler på utsiden må defineres med __block for å være skrivbare
/* En block-definisjon */
typedef void(^KURLConnectionSuccessHandler)(NSData *data);

/* metodedefinisjon med block som input */
+ (void)startWithSuccessHandler:(KURLConnectionSuccessHandler)successHandler;

/* Kall på metode med block lik block-definisjonen */
[KURLConnection startWithSuccessHandler:^(NSData *data)
{
	[self cancelTouch:nil];
}];