Objective-C编程:块、结构体与指针的深入解析
1. 块(Blocks)
在Objective - C中,块是一种特殊的代码结构。下面是一个示例代码:
#import <Foundation/Foundation.h>
int main (int argc, char * argv[])
{
@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 的定义前插入 __block 修饰符,即 __block int foo = 10; ,运行程序会得到如下输出:
foo = 15
foo = 20
第一行表明 foo 的值是块被调用时的值,第二行验证了块能够将 foo 的值更改为20。 </
超级会员免费看
订阅专栏 解锁全文
17

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



