美文网首页ios
iOS 退出页面没有调用dealloc的情况

iOS 退出页面没有调用dealloc的情况

作者: xmb | 来源:发表于2017-10-30 15:18 被阅读32次

    1、timer计时器退出页面没有销毁
    [timer setFireDate:[NSDate distantFuture]];
    [timer invalidate];
    timer = nil;

    2、block循环引用self
    使用宏:
    //解决block强引用问题 宏

    define WeakSelf(weakSelf) __weak __typeof(&*self)weakSelf = self;

    define StrongSelf(strongSelf) __strong __typeof(&*self)strongSelf = weakSelf;

    如果是一个self,在block外用WeakSelf,block里用weakSelf。
    如果是多个self,在block外用WeakSelf,block里用StrongSelf。

    F424D970-728D-4CD5-8C71-5B9A8848C40F.png

    3、调用了perfomSelector函数
    使用[NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(test:) object:nil];

    4、使用@property (nonatomic, weak) id delegate

    5、自定义的view(先removefromsuperview,再置为nil,即可调动view的dealloc方法)

    6、block中用到了成员变量
    将成员变量修改为属性

    7、NSNotication remove

    相关文章

      网友评论

        本文标题:iOS 退出页面没有调用dealloc的情况

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