块(Blocks)在ios 4中的使用

ios 4之后可以在代码中使用Blocks了,一直也对这种使用方法搞不太清楚,看到的这篇文章挺不错的,讲了基础概念和基本使用方法。

看了之后明白了点儿,呵呵,不过还是不太习惯这种用法,还是要自己多写写才能熟练。


原文地址:http://www.pragmaticstudio.com/blog/2010/7/28/ios4-blocks-1


第二部分内容:http://pragmaticstudio.com/blog/2010/9/15/ios4-blocks-2


相当不错的文章,例子也很好,学习学习


ps: 传入block的参数如果是在栈上生命的,则block会得到对该参数的一份const拷贝,再执行block中的代码,因此该参数的值是不可以改变的,如果想要改变该变量的值,需要在该变量声明前加上__block,那么block中的代码会对改参数直接操作,执行完成之后,该变量也会变成一个新的值。例如:

__block int multiplier = 3;
 
[Worker iterateFromOneTo:5 withBlock:^(int number) {
    multiplier = number * multiplier;
    return multiplier;
}];
 
NSLog(@"multiplier  => %d", multiplier);


你可能感兴趣的:(块(Blocks)在ios 4中的使用)