block的使用(六)

#import <Foundation/Foundation.h>函数

typedef void(^blockType)();spa


//1)代码在ARC.net

// 运行结果 VVVV i = 53d

//2) 代码在MRCorm

// 运行结果 VVVV i = 5,可是用analyze分析,return bb;有内存泄露。MRCbb是栈blockbb在方法执行完成以后会被销毁掉内存

// 定义返回值是block类型的函数get

blockType test() {io

    int i = 5;class

    blockType bb = ^{test

        NSLog(@"VVVV i = %d",i);

    };

    //return bb;

    return Block_copy(bb); // copy拷贝一份blockbb位于堆区。

}


int main(int argc, const char * argv[]) {

    @autoreleasepool {

       //接收test的返回值

        blockType b1 = test();

        b1();

        

        Block_release(b1);

        

    }

    return 0;

}

相关文章
相关标签/搜索