iOS、swift技术交流!

block的堆栈?

2016-04-28  本文已影响84人  光明程辉

block究竟放在什么地方:堆\栈?

    // 默认情况下, 任何block都是在栈, 随时可能会被回收

    void (^myblock)() = ^{
        
    };
    
    // 对block做一次copy操作,block的内存就会放到堆里面
    [myblock copy];
    Block_copy(myblock);

注:BLOCK被另一个BLOCK使用时,另一个BLOCK被COPY到堆上时,被使用的BLOCK也会被COPY。但作为参数的BLOCK是不会发生COPY的

上一篇 下一篇

猜你喜欢

热点阅读