Objective-C blocks and variables
I've started using Objective-C blocks today. I wrote the following code: NSArray *array = @[@25, @"abc", @7.2]; void (^print)(NSUInteger index) = ^(NSUInteger index) { NSLog(@"%@", array[index]); }; for (int n = 0; n < 3; n++) print(n); Which works properly. I needed to change the array variable after its declaration, though, so I tried using the following code: NSArray *array; void (^print)(NSUInteger index) = ^(NSUInteger index) { NSLog(@"%@", array[index]); }; array = @[@25, @"abc", @7.2]; for (int n = 0; n < 3; n++) print(n); However, that doesn't work. The console just prints (null) three