zoukankan      html  css  js  c++  java
  • IOS Block的本质

    #import "HMViewController.h"
    #import "HMPerson.h"
    
    @interface HMViewController ()
    
    @end
    
    @implementation HMViewController
    
    - (void)viewDidLoad
    {
        [super viewDidLoad];
        
        
        // 1.如果没有对block进行copy操作,block就存储于栈空间
        // 2.如果对block进行copy操作,block就存储于堆空间
        
        // 3.如果block存储于栈空间,不会对block内部所用到的对象产生强引用
        // 4.如果block存储于堆空间,就会对block内部所用到的对象产生强引用
        
    //    HMPerson *p = [[HMPerson alloc] init];
    ////    __unsafe_unretained typeof(p) weakP = p;
    //    __block typeof(p) weakP = p;
    //    p.testBlock = ^{
    //        [weakP run];
    //    };
    //    
    //    [p release];
        
        __block int age = 10;
        void (^block)() = ^{ // 值捕获
            NSLog(@"age=%d", age);
        };
        
        age = 20;
        
        block();
    }
    
    @end
  • 相关阅读:
    CSPS模拟 49
    StrGame
    CSPS模拟 48
    [没有证明]原根求法
    CSPS模拟 47
    CSPS模拟 46
    CSPS模拟 45 乔迁之喜
    CSPS模拟 44
    平衡二叉树
    go语言学习--指针数组和数组指针
  • 原文地址:https://www.cnblogs.com/liuwj/p/6752714.html
Copyright © 2011-2022 走看看