【发布时间】:2012-10-12 16:48:19
【问题描述】:
我今天开始使用 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)。为什么这不起作用,而它在我的第一段代码中起作用?
【问题讨论】:
标签: objective-c variables objective-c-blocks