iOS18.0 及 iOS18.1 必现崩溃。- (BOOL) respondsToSelector:(SEL)aSelector 中 aSelector 可能无效,导致必现崩溃

1、 hook respondsToSelector: 接口,比如 hook 后的接口名字为 yy_respondsToSelector: 2、在 yy_respondsToSelector 中使用传入的参数 aSelector。示例代码如下:

  • (BOOL) yy_respondsToSelector:(SEL)aSelector { if ([self yy_respondsToSelector:aSelector]) { return YES; }

    if ([self.selectorNameArray containsObject:NSStringFromSelector(aSelector)]) { return YES; } return NO;

}

2、在自定义 UIViewController,比如 YYViewController,实现下述代码

  • (void)viewDidAppear:(BOOL)animated { [super viewDidAppear:animated];

    NSMutableArray *vcs = [[NSMutableArray alloc]init]; [vcs addObject:[[UIViewController alloc] init] ]; [vcs addObject:[[UIViewController alloc] init] ]; self.navigationController.viewControllers = vcs;

}

3、当页面 YYViewController加载并执行 viewDidAppear 时候, App 一定会出现崩溃,因为 aSelector 是一个非法指针,访问就会崩溃

你好,请问你怎么解决这个问题的呢?

iOS18.0 及 iOS18.1 必现崩溃。- (BOOL) respondsToSelector:(SEL)aSelector 中 aSelector 可能无效,导致必现崩溃
 
 
Q