ZBNetworking icon indicating copy to clipboard operation
ZBNetworking copied to clipboard

在使用这个库的过程中经常会收到崩溃异常,一直没找到问题,大家有遇到过没

Open v4guoguo opened this issue 2 years ago • 4 comments

image image

v4guoguo avatar Jun 24 '22 03:06 v4guoguo

从图上看,应该是timeoutInterval 触发了kvo崩溃,你也可以看下 公共配置或单次请求是否设置了timeoutInterval,如果没有可以 公共配置的timeoutInterval赋值看能否解决 @v4guoguo

Suzhibin avatar Jun 26 '22 01:06 Suzhibin

image 公共类配置过的,网络请求完该类会被销毁吧,是不是这个问题引起的呢

v4guoguo avatar Jul 28 '22 09:07 v4guoguo

setupBaseConfig 只启动时调用一次 会把这些配置 赋给ZBRequestEngine单例,ZBConfig销毁 也无所谓。这个我在看一下timeoutInterval的逻辑,如果有解决方案,我在来@你 @v4guoguo

Suzhibin avatar Jul 28 '22 10:07 Suzhibin

调研了一番,没有复现。猜测,AF timeoutInterval多次添加和移除观察者,但添加和移除的次数不相同造成的异常。在不动AF代码的情况下,那只能不频繁给timeoutInterval赋值 解决了,AF本身的超时时间就是60秒和你的一样,你可以不用设置这个属性,搜索headersAndTimeConfig方法,把里面的 self.requestSerializer.timeoutInterval=request.timeoutInterval; 注释掉。

另外我注意到你在setupBaseConfig方法内 ,有token赋值,如果你的token是动态的 ,不要在setupBaseConfig内设置,setupBaseConfig是基础配置 ,只调用一次(除非你每次请求手动调用,不建议这么做)。 可以在setRequestProcessHandler方法内 进行Token配置,setRequestProcessHandler每次请求都会调用,具体参照demo内的RequestTool类 @v4guoguo

Suzhibin avatar Jul 29 '22 08:07 Suzhibin