我今天使用Objective-C块开始。 我写了下面的代码:
NSArray *array = @[@25, @"abc", @7.2];
void (^print)(NSUInteger index) = ^(NSUInteger index)
{
NSLog(@"%@", array[index]);
};
for (int n = 0; n < 3; n++)
print(n);
其正常工作。 我需要改变array
其声明之后可变的,虽然,所以我尝试使用以下代码:
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);
然而,这是行不通的。 控制台只是打印(null)
的三倍。 为什么,这是不行的,它虽然与我的第一段代码工作?