zoukankan      html  css  js  c++  java
  • bug 发表文章不显示图片

    bug 描述:

    现象是我们这不能发布图片, 测试说患教方向是可以正常发布图片的(还是要感激测试,正是他们鞭策我们不断挑战困难,解决之,从而提高自己姿势水平).

    • 图片没上传上去, 服务端协助查找发现没调上传图片的方法,服务端反馈:正确的姿势是先上传图片, 上传图片成功,返回一个图片id,然后再调发布文章的接口(安卓是这样的)

    • 根据服务端的反馈,找上传图片的接口, 通过控制台log找到控制器,在选择培训班的页面,点发表按钮点击事件->应该调发表文章的接口,然而没有调用上传图片的接口(断点位置打错了,应该多打些断点), 上传图片方法的判断条件没走if(item.paragraphId.length == 0 && [item isImageType] && item.imageAssetURL.length > 0)

    • 没走上传方法,别的业务方向(患教)的可以上传,他们走的是什么方法?发现他们的判断条件跟我们稍微不同

    • 因为判断条件都不符合,所以没走上传方法. 控制台,item属性为空,看前后model传递并无问题

    • createArticle控制器肯定是没问题的,我们都用的一个控制器

    • 打断点,看控制台imageAssetURL为nil --> 怀疑是modle没有传递这个字段

    • 怀疑是模型传递错误,看方法是从哪调用的,往回追溯,[publish uploadArticle:weakObject.articleModel], 怀疑是这个articleModel有问题,
    • HDFSelectSchoolViewController.h 选择培训班的控制器,对外公布了两个model, 实现文件中还有个model, 这么多model我当时就懵逼了,一顿赋值,啥啊
    • 我们初始化控制器的时候只传递 articleModel, 谁改了什么地方? (结论是没人改)
    • 怀疑是调起相册的时候没有拿到url, 看createArticle有什么改动,
    • 发现他们删了一些代理方法,我给它恢复过来,运行,没效果
    • 我打断点,看患教文章发布的时候走的什么接口,就发现判断条件比我们多一个
    • if(item.paragraphId.length == 0 && [item isImageType] && (item.imageAssetURL.length > 0 || item.imageLocalIdentifer.length > 0))

    • 再看Git log 发现郭倩玲6/3修改过,于是我也补充上判断条件,把乾陵的代码copy过来, 把报警去掉,根据峰哥的逻辑修改这里的逻辑

    • 拷贝代码, 去掉红色报错,注释掉不用的通知代码,不用的逻辑,用旧的逻辑,用关联开发代理的环境,运行测试, 其实就可以了,
    • 我老是怀疑没调后台给的那个上传图片的接口,其实不是后台说的那样的, 患教方向上传图片也没调后台给的接口,而是一个flowref_uploadSound接口,当时很沮丧,
    • 其实,直接连上代理,测试一下就好了,不要疑神疑鬼的,直接测

    总结:

    • 打断点,发现问题点,一步一步往前回溯,不要瞎猜,要顺藤摸瓜,一步一个脚印, 除非非常确定直觉
    • 发生这个现象的原因是上传本机图片调用的是患教写好的方法,但是我们月底合代码的时候,合了他们的代码,我们自己的并没有修正

    知行合一,多总结,别傻干蛮干

  • 相关阅读:
    docker学习
    获取程序所有加载的dll名称
    Microsoft.Exchange 发邮件
    EF实体对象解耦
    python并发与futures模块
    python协程
    python上下文管理器
    python迭代器与生成器
    python抽象基类
    python运算符重载
  • 原文地址:https://www.cnblogs.com/tufei7/p/5674628.html
Copyright © 2011-2022 走看看