美文网首页
MJRefreshStateHeader lastUpdate

MJRefreshStateHeader lastUpdate

作者: zhaocarbon | 来源:发表于2019-12-06 09:25 被阅读0次

    其实一直比较抵触这个垃圾pod管理第三方组件或者是实用工具,并且很多开发人员写的东西也很垃圾!这不,最近公司项目外包到第三方,其就使用pod来大量引入第三方组件来搞开发。但是重点问题来了,第三方组件引起崩溃!OC中应该没有问题,因为OC中一个函数的参数可以传对应的参数对象,也可以传一个nil进去,根本不会崩溃。而在swift中就不一定了,如果你定义的输入参数并不是可选可空参数,那传一个nil进去立即崩溃!!

    如下分析:lastUpdatedTimeText方法就因为逻辑不严谨出现BUG,导致崩溃!

    NSDate *lastUpdatedTime = [[NSUserDefaultsstandardUserDefaults]objectForKey:lastUpdatedTimeKey];

    lastUpdatedTime初始未被设置,则值为空!!将空nil传进去,立即崩溃!

    @property (copy, nonatomic,nullable) NSString *(^lastUpdatedTimeText)(NSDate *lastUpdatedTime);

    注意:(NSDate *lastUpdatedTime);这个输入的定义,在swift中意即必须是有效的对象。如果是nil,只能呵呵了。没办法,只能修改这个破组件的源码!将其定义改为:
    @property (copy, nonatomic,nullable) NSString *(^lastUpdatedTimeText)( NSDate * _Nullable lastUpdatedTime);

    希望以上吐槽能帮助到遇到同样问题的人。这样改了,如果你pod更新一下,你修改的就又没了。。。所以,要么,不要更新最新版本,要么就去git上提BUG,让开发人员处理。或者是自己GIT拉下来,修改掉,给提交上去。

    相关文章

      网友评论

          本文标题:MJRefreshStateHeader lastUpdate

          本文链接:https://www.haomeiwen.com/subject/jkysgctx.html