NSObject+ZHIMI.m 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. //
  2. // NSObject+ZHIMI.m
  3. // zhimi
  4. //
  5. // Created by Apple on 2019/10/8.
  6. // Copyright © 2019 caiPro. All rights reserved.
  7. //
  8. #import "NSObject+ZHIMI.h"
  9. //modify by leo 20191008
  10. @implementation NSObject (ZHIMI)
  11. + (void)load{
  12. SEL originalSelector = @selector(doesNotRecognizeSelector:);
  13. SEL swizzledSelector = @selector(sw_doesNotRecognizeSelector:);
  14. Method originalMethod = class_getClassMethod(self, originalSelector);
  15. Method swizzledMethod = class_getClassMethod(self, swizzledSelector);
  16. if(class_addMethod(self, originalSelector, method_getImplementation(swizzledMethod), method_getTypeEncoding(swizzledMethod))){
  17. class_replaceMethod(self, swizzledSelector, method_getImplementation(originalMethod), method_getTypeEncoding(originalMethod));
  18. }else{
  19. method_exchangeImplementations(originalMethod, swizzledMethod);
  20. }
  21. }
  22. + (void)sw_doesNotRecognizeSelector:(SEL)aSelector{
  23. //处理 _LSDefaults 崩溃问题
  24. if([[self description] isEqualToString:@"_LSDefaults"] && (aSelector == @selector(sharedInstance))){
  25. //冷处理...
  26. return;
  27. }
  28. [self sw_doesNotRecognizeSelector:aSelector];
  29. }
  30. @end