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]  
目录
相关文章
|
iOS开发
【IOS 开发】Objective - C 语法 之 流程控制(二)
【IOS 开发】Objective - C 语法 之 流程控制(二)
142 0
|
iOS开发
【IOS 开发】Objective - C 语法 之 流程控制(一)
【IOS 开发】Objective - C 语法 之 流程控制(一)
126 0
|
iOS开发
【iOS 开发】Objective - C 语法 之 类型转换
【iOS 开发】Objective - C 语法 之 类型转换
368 0
|
存储 Java 程序员
C++ 开发者快速学习 Objective-C 语言核心语法
本文将讨论 Objective-C 语言的核心语法。这部分开始详述一些具体的语法。正如你期待的一样,涉及到了定义和类。
224 0
|
Java 程序员 C语言
Objective-C之Block、GCD好文章推荐
Objective-C之Block、GCD好文章推荐
128 0