美文网首页
心路历程总结第一天

心路历程总结第一天

作者: RunningTeemo | 来源:发表于2018-03-16 14:07 被阅读0次

1、@autoreleasepool用法,为了让一些耗内存的操作提前释放,比如SDImage中的从磁盘读取图片就是写在autoreleasepool中

@autoreleasepool {
            UIImage *diskImage = [self diskImageForKey:key];
            if (diskImage && self.shouldCacheImagesInMemory) {
                NSUInteger cost = SDCacheCostForImage(diskImage);
                [self.memCache setObject:diskImage forKey:key cost:cost];
            }
            dispatch_async(dispatch_get_main_queue(), ^{
                doneBlock(diskImage, SDImageCacheTypeDisk);
            });
        }

而对于下列这种情况

- (void)playWithDog{
    Dog *dog = nil;
    @autoreleasepool{
        dog  = [Dog new];
    }
    NSLog(@"111111111");
}

- (instancetype)init{
    if (self=[super init]) {
        NSLog(@"小狗被派出去啦!初始引用计数为");
    }
    return self;
}


- (void)dealloc
{
    NSLog(@"小狗回到了宠物中心");
}

打印如下

2018-03-16 14:11:19.913446+0800 Pointer[48738:493873] 小狗被派出去啦!初始引用计数为
2018-03-16 14:11:21.740969+0800 Pointer[48738:493873] 111111111
2018-03-16 14:11:22.808060+0800 Pointer[48738:493873] 小狗回到了宠物中心

则是new的时候,执行init,playWithDog方法结束的时候执行Dog的dealloc方法。

接着说到dealloc中的意义。 非arc中的意义

释放自身的实例变量,
移除观察者,
停止timer,
移除通知,
代理置空等。
注意MRC 下dealoc 方法一定要在最后写
[super dealloc];

而arc中
系统会帮助我们释放该对象所包含的实例变量,但是有些对象还是需要们自己去释放的(比如Core Foundation框架下的一些对象),另外通知中观察者的移除,代理置空,停止timer等
示例如下所示:
一定不能有 [super dealloc];(我认为是系统已经帮我们执行了[super dealloc])

- (void)dealloc
{
    [[NSNotificationCenter defaultCenter]                      removeObserver:self];//移除通知观察者
    [[XMPPManager sharedManager]                               removeFromDelegateQueue:self];//移除委托引用
    [[MyClass shareInstance]  doSomething ]//其他操作
    scrollView.delegate = nil;
    [timer invalidate];  
}

相关文章

  • 网络请求相关

    1,Android网络请求心路历程,总结的非常好 Android网络请求心路历程 2,Volley的源码解析和详细...

  • 心路历程总结第一天

    1、@autoreleasepool用法,为了让一些耗内存的操作提前释放,比如SDImage中的从磁盘读取图片就是...

  • 在路上 1

    今天是训练营第五天。 总结一下这几天从彷徨、手忙脚乱到渐渐踏实的心路历程。 第一天, 很感激朋友圈一位并不熟识的朋...

  • 一名软件工程师30岁的人生总结(三)——自律给我自由

    前言 其实,春节前就规划了这篇总结,只不过当时只是想把这几年来健身的心路历程总结先,谈谈它给我带来的好处。结果,前...

  • 期待:遇见那个努力向上的自己

    期待:遇见那个努力向上的自己 __写手圈30天连续写作训练营15天心路历程 第一天 加入这个训练营第一天,交了篇不...

  • 20170214李爽 140期6组教练总结

    20170214李爽 140期6组教练总结 关键词:心路历程 成长 收获 困惑 突破 惊喜 希望 愿景:检视心路历...

  • 那个攥着两万块钱就出发去环游世界的22岁姑娘,现在还好吗?

    写在前面:前面是大几千字的2017心路历程总结,想看实用贴的小天使直接后拉即可。 嗨~又到了年度总结的时候了,20...

  • 顺其自然?

    躺在床上翻来覆去,仔细回想着这几天的培训。 好像从第一天到第四天,心路历程渐渐发生了变化。 第一天,打了鸡血; 第...

  • 写作半年来带给我的变化

    最近刚刚完成了工作上的半年总结,现在对我的业余爱好——写作也做篇总结,以记录心路历程。 从今年1月入住简书,工作当...

  • 很烦写总结

    今天问领导我要不要提交年终总结,领导说我可以写写这入司半个月以来的心路历程,不需要总结,可以写写所见所闻,最好就是...

网友评论

      本文标题:心路历程总结第一天

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