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;

}

相關文章
相關標籤/搜索