可以在XCODE中先查看是否存在内存泄漏,如果有就一步一步查。
1.析构函数打断点,查看退出场景时某类的析构函数是否调用。
2.强引用的地方查看是否有循环引用。如果有,使用weak_ptr
如可以,最好保证只有一个最必要的地方对其持有强引用并管理。
3.查看基类是否是虚析构函数。 如果不是就改正。
4.lambda表达式[pointer]中的引用指针是永久持有,所以不要随意的添加变量。
这里有特殊情况,如果是异步操作,局部变量的智能指针是没有被引用的,所以在异步的回调中智能指针已被释放,所以请注意保证指针的引用计数。