chenfanfang / AvoidCrash

This framework can effective avoid crash by potential error code. For example : If you insert a nil into a mutable array, this framework can avoid crash and note you that where cause crash.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

setupNoneSelClassStringPrefixsArr该方法会导致某些发产生EXC_BREAKPOINT崩溃,

hj4859199 opened this issue · comments

noneSelClassPrefix 我在这个数组中添加了某些前缀的类,但是导致运行的时候某些类持续闪退,注释掉setupNoneSelClassStringPrefixsArr就不会崩溃了,请问这是什么原因?

你好,PrefixsArr数组里放了哪些字符串,麻烦贴出你的代码。
由于自带类的某些少数方法的调用是通过最后的转发补救的,所以AvoidCrash有时候会拦截了系统的默认做法,会导致误伤,所以可能会导致你所说的情况。你可以参考下面的链接。

#40

同时,请贴出你的代码,给大家借鉴一下哪些情况会出现这样的问题,也方便AvoidCrash进行改进,谢谢

下面是我在AppDelegate调用的方法
NSArray *noneSelClassPrefix = @[
@"IM",
@"Project",
@"Attend",
@"Report",
@"Labor",
@"Quality",
@"Contract",
@"Bill"
];
[AvoidCrash setupNoneSelClassStringPrefixsArr:noneSelClassPrefix];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(dealwithCrashMessage:) name:AvoidCrashNotification object:nil];

其中Attend对应的AttendanceSignInVC和AttendanceLocusDetailVC的两个类,
Project对应的ProjectHomePageViewController类运行就会闪退,出现EXC_BREAKPOINT错误

@hj4859199 抱歉,目前AvoidCrash对 “unrecognized selector sent to instance”的兼容并不是非常完善,建议不要填入 UIKit中的类或者子类,也不要加入NSObject(可以加入继承于NSObject的子类)。

unrecognized selector sent to instance 一般用来对数据的处理比较多,建议直接使用如下代码(只针对数据的处理)

NSArray *noneSelClassStrings = @[
@"NSNull",
@"NSNumber",
@"NSString",
@"NSDictionary",
@"NSArray"
];
[AvoidCrash setupNoneSelClassStringsArr:noneSelClassStrings];

对于AvoidCrash给你带来的困扰,在此表示抱歉。