一般来说,在创建工程的时候,我都会在Build Settings启用Analyze During 'Build',每次编译时都会自动静态分析。
这样的话,写完一小段代码之后,就马上知道是否存在内存泄露或其他bug问题,并且可以修bugs。
而在运行过程中,如果出现EXC_BAD_ACCESS,启用NSZombieEnabled,看出现异常后,控制台能否打印出更多的提示信息。
如果想在运行时查看是否存在内存泄露,使用Instrument Leak工具。
但是有些内存泄露是很难检查出来,有时只有通过手动覆盖dealloc方法,看它最终有没有调用。
其实对block进行内存泄漏的检测主要的循环引用问题,这里可以使用Facebook的第三方框架FBRetainCycleDetector来进行检测,
具体使用方法见下面链接https://github.com/facebook/FBRetainCycleDetector