//-----demonstrate how blocks hold their captured state
NSDate *date = [NSDate date];
void (^now)(void) = ^ {
NSLog(@"The date and time is %@", date);
};
now();
sleep(5);
date = [NSDate date];
now();
//--------------
int (^triple)(int) = ^(int number) {
return number * 3;
};
int result1 = triple(2);
int (^multiply)(int, int) = ^(int x, int y) {
return x * y;
};
int result2 = multiply(2, 3);
NSLog(@"result %i", result2);
result2 = multiply(5, 3);
NSLog(@"result %i", result2);
switch ([dateOne compare:dateTwo]) {
case NSOrderedAscending:
// dateOne < dateTwo
break;
case NSOrderedSame:
// The dates are the same
break;
case NSOrderedDescending:
// dateOne > dateTwo
break;
}
//numberOne and numberTwo are 2 NSNumber
if (numberOne isEqualToNumber: numberTwo)
{
NSLog(@"numberOne is equal to numberTwo");
}
if ([numberOne intValue] > [numberTwo intValue])
{
NSLog(@"numberOne higher than numberTwo");
}
//intValue could be doubleValue, floatValue, etc