LEETheme
LEETheme copied to clipboard
[self lee_theme_dealloc] EXC_BAD_ACCESS crash
在APP从后台切换到前台时,可能会造成app crash,通过异常断点查看,崩溃到的[self lee_theme_dealloc];
这里,不太理解作者为什么在这里要多次递归调用该方法,可能引起crash的原因就是self(LEETheme)对象过度内存释放导致的,希望作者能修复该问题。谢谢。
下面是出现crash的文件,及代码片段:
文件:#import "LEETheme.h"
...
@implementation NSObject (LEEThemeConfigObject)
...
- (void)lee_theme_dealloc{
if ([self isLeeTheme]) {
[[NSNotificationCenter defaultCenter] removeObserver:self name:LEEThemeChangingNotificaiton object:nil];
objc_removeAssociatedObjects(self);
}
[self lee_theme_dealloc]; // 注:crash 在这里
}
实际上是交换了方法实现的, 并不是递归调用, [self lee_theme_dealloc]; 调用的是原来的方法实现, 崩溃到这里并不是由 LEETheme引起的.