美文网首页
静态区问题

静态区问题

作者: 等一个最好的自己 | 来源:发表于2021-01-18 16:45 被阅读0次

    TestObject.h中

    static NSInteger num = 100;
    @interface TestObject : NSObject
    +(void)add;
    @end
    

    TestObject.m中

    +(void)add{
        num ++;
        NSLog(@"TestObject---- %p-----%ld",&num,num);
    }
    

    ViewController.m中

    - (void)viewDidLoad {
        [super viewDidLoad];
        NSLog(@"%p-----%ld",&num,num);
        num = 10000;
        NSLog(@"%p-----%ld",&num,num);
       
        [TestObject add];
        NSLog(@"%p-----%ld",&num,num);
    }
    

    大家知道能输出啥吗?
    输出结果如下:

    2021-01-18 16:36:23.675920+0800 test[99077:6602929] 0x1024211d0-----100
    2021-01-18 16:36:23.675973+0800 test[99077:6602929] 0x1024211d0-----10000
    2021-01-18 16:36:23.676172+0800 test[99077:6602929] TestObject---- 0x1024211c8-----101
    2021-01-18 16:36:23.676210+0800 test[99077:6602929] 0x1024211d0-----10000
    

    为啥呢,这里大家应该知道一个概念就是用stastic修饰的全局静态变量,只对文件有。可以看打印,num在TestObject和ViewController两个不同的文件里,地址也是不一样的。
    同样分类和类也是属于两个不同的文件的。

    相关文章

      网友评论

          本文标题:静态区问题

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