Objective-C 编程:块、结构体与指针的深入解析
1. 块(Blocks)的使用与特性
在编程中,块(Blocks)是一种强大的工具。以下是一个简单的块使用示例:
@autoreleasepool {
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);
}
return 0;
在这个示例中,直接在块内修改 foo 的值会产生编译错误。但如果在局部变量 foo 的定义前插入 __block 修饰符,情况就不同了:
__block int foo = 10;
运行修改后的程序,会得到如下输出:
foo = 15
foo = 20
第一行输出表明,块调用时 foo 的值是当时的实际值;第二行输出验证了块能够将 foo 的值修改为 20。
超级会员免费看
订阅专栏 解锁全文

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



