Objective-C编程中的结构体与指针详解
1. 块(Blocks)的使用
在Objective - C中,块是一种特殊的代码片段。下面是一个示例代码:
#import <Foundation/Foundation.h>
int main (int argc, char *argv[])
{
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
int foo = 10;
void (^printFoo)(void) =
^(void) {
NSLog (@"foo = %i", foo);
foo = 20; // ** THIS LINE GENERATES A COMPILER ERROR
};
foo = 15;
printFoo ();
NSLog (@"foo = %i", foo);
[pool drain];
return 0;
}
在上述代码中,如果直接在块内修改 foo 的值,会产生编译错误。但如果在 foo 定义前加上 __block 修饰符,如下:
__block int foo = 10;
运行程序会得到如下输出:
foo = 10
foo =
超级会员免费看
订阅专栏 解锁全文
21

被折叠的 条评论
为什么被折叠?



