fabcz
fabcz
提个建议:长按保存弹出提示框时,点击空白处能关闭弹出框,这样用户体验更好
` NSDictionary+Safe` 里有 `[self safe_exchangeInstanceMethod:NSClassFromString(@"__NSPlaceholderDictionary") originalSel:@selector(initWithObjects:forKeys:) newSel:@selector(safe_initWithObjects:forKeys:)];` 这样的防护代码,但正如 LSViewController 里的 testDictionary 所示 ``` NSString *value=nil; NSString *strings[3]; strings[0]=@"000"; strings[1]=value; strings[2]=@"222"; [[NSDictionary alloc]initWithObjects:strings forKeys:strings count:3]; ``` 这代码首先会触发的是 Array 的崩溃而不是 Dictionary 的...
For more details, please refer to https://github.com/CocoaPods/CocoaPods/issues/11826
### 背景 目前 OCRunner 在补丁方法的桥接实现 [methodIMP](https://github.com/SilverFruity/OCRunner/blob/da0f36fbf957169a302ade825210ee2fa3937c22/OCRunner/ORCoreImp/ORCoreImp.m#L27-L89) 中,会通过: ``` NSMethodSignature *sig = [target methodSignatureForSelector:sel]; ``` 来获取参数和返回值的类型信息,然后用 `sig` 去构造 `MFValue`。 在没有其它框架干扰的情况下,这个做法是可以工作的。但当项目中引入 **Aspects** 或其它基于 **method swizzling / 动态子类** 的框架时,这个假设就不再成立: - Aspects 会把 [原方法换成...