Objective-C Block语法递归函数实现

两种方法可以实现,一种是参考zenny_chen所说的全局的或都static的block可以实现 
http://www.cocoachina.com/bbs/read.php?tid-9222-fpage-3.html 
int main(void) 
{ 
    void (^p)(int) = 0; 
    static void (^ const blocks)(int) = ^(int i){ 
       if(i > 0){ 
             puts("Hello, world!"); 
             blocks(i - 1); 
       } 
    }; 
    p = blocks; 
    p(2); 
} 
另外找到一种方法就是直接将block块也用__block来进行声明就可以了。 
int main(void) 
{ 
    __block void (^blocks)(int); 
    blocks = ^(int i){ 
       if(i > 0){ 
             puts("Hello, world!"); 
             blocks(i - 1); 
       } 
    }; 
    blocks(2); 
} 
 
 
ps,最近使用block和配合G_C_D来写程序,实在是爽疯了。^_^ 
 
http://minik.blog.com/2011/08/12/objective-c-blockrecursive/ 
[backcolor=infobackground] 
上一篇:Vue利用文本域做一个批量添加选项功能


下一篇:2017年第八届蓝桥杯B组-第五题:取位数