美文网首页
方法调用顺序

方法调用顺序

作者: 可微微可可可 | 来源:发表于2017-06-15 11:34 被阅读20次
//    __block int count = 0; 
    void (^block)(void) = ^(void){
        int i = 0;
//        [_container class];  // 当使用__strong类型修饰的变量,block 会从代码区拷贝到堆区
        do {
            NSLog(@"5");
//            count ++;
            i ++;
        } while (i < 5);
     
    };
    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), block);
    
    dispatch_async(dispatch_get_main_queue(), ^{
        int i = 0;
        do {
            NSLog(@"4");
            i ++;
        } while (i < 5);
    });
    
    [self test1];
    [self performSelector:@selector(test2)];
    int i = 0;
    do {
        [self performSelector:@selector(test3) withObject:nil afterDelay:0.0];
        i ++;
    } while (i < 5);
    
    void (^blockAsycn)(void) = ^(void) {
    
        NSLog(@"6");
    };
    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), blockAsycn);
    
    
    for (int i = 0; i < 5; i ++) {
        [self test1];
    }
    ```

![运行结果](https://img.haomeiwen.com/i32940/c72ac708de1ac754.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

/**
总结:
1. 不同种调用方式,他们的方法是存储在各自的区域,且是有调用优先级的(主线程顺序调用)
2. 异步的方式,不受区域的限制,在同等优先级的情况下,受顺序控制
3. block块的内容,会先拷贝到堆(如果强引用的对象(连__block 的c类型也会)在block中)这里的block都是NSGlobalBlock,也就是代码区
**/

相关文章

  • iOS-浅谈OC中+load和+initialize方法

    目录 +load方法---- 类和分类的+load方法调用顺序---- 不同类间的+load方法调用顺序---- ...

  • 方法调用顺序

    /**总结:1. 不同种调用方式,他们的方法是存储在各自的区域,且是有调用优先级的(主线程顺序调用)2. 异步的方...

  • 方法调用顺序

    方法调用顺序 1.alloc :创建对象,分配空间 2.init :初始化对象,初始化数据 3.loadView...

  • iOS load方法的执行顺序

    方法会在main方法调用之前调用,且调用顺序,依赖Compile Sources 里面的顺序例外: 分类的+loa...

  • 分类中同名方法的调用顺序

    主类和分类中普通方法的调用顺序?同一个主类的两个分类中的同名方法调用顺序?分类中+load方法的调用顺序?分类中+...

  • KVC底层实现

    一、关于 valueForKey:key 的调用顺序 1、 先调用相关方法,先后顺序是 2、 如果没有相关方法,看...

  • view方法调用顺序

    View方法调用顺序 setNeedsDisplay()didAddSubview(有几个subview 调用几次...

  • iOS-底层-+load和+initialize方法

    一. +load方法 1. +load方法调用顺序 调用时机:+load方法会在Runtime加载类、分类时调用。...

  • +load、+initialize 以及分类的加载

    +load: 1.+load方法什么时候调用? 2.+load方法调用原理 3.+load方法调用顺序? 4.举例...

  • 基础知识小记

    +load;+initialize方法 +load方法会在main之前调用。调用顺序:先由父类到子类依次调用+lo...

网友评论

      本文标题:方法调用顺序

      本文链接:https://www.haomeiwen.com/subject/jvmyqxtx.html