iOS开发过程中controller或者view不走dealloc方法

这个问题老生常谈但是还总是会出现我下面就写一下可能的原因

1. controller中使用了计时器 NSTimer 使用后没有销毁 导致循环引用
2.协议delegate 应该使用weak修饰,否则会引起循环引用 不能释放内存
3.使用到block的地方,,block回调中不能直接使用self 否则可能引起循环引用。
4.这个问题可能很少有人注意,检查一下你的工程是不是ARC环境的,或者检查你的文件是不是ARC的.
5.检查你的main.m中是否加入了缓存池处理(这个好像没多大的影响)
    @autoreleasepool {
          return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
    }

修改工程文件为Arc的方法

 1,选择项目中的Targets,选中你所要操作的Target,
 2,选Build Phases,在其中Complie Sources中选择需要ARC的文件双击,并在输入框中输入:-fobjc-ARC,如果不要ARC则输入:-fno-objc-ARC

你可能感兴趣的:(iOS开发过程中controller或者view不走dealloc方法)