zl程序教程

您现在的位置是:首页 >  其它

当前栏目

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

实现 语法 Block Objective 递归函数
2023-09-14 08:56:48 时间
两种方法可以实现,一种是参考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] 
深入Objective-C Runtime机制(一):类和对象的实现 1.概要      对于Runtime系统,相信大部分iOS开发工程师都有着或多或少的了解。对于Objective-C,Runtime系统是至关重要的,可以说是Runtime系统让Objective-C成为了区分于C语言,C++之外的一门独立开发语言,让OC在拥有了自己的面向对象的特性以及消息发送机制。并且因为其强大的消息发送机制,也让很多人认为Object