美文网首页
HQ移动20170218期周报

HQ移动20170218期周报

作者: 君赏 | 来源:发表于2017-02-18 14:14 被阅读21次

    1. Duplicate interface definition for class 错误

    本来以为是文件重复导入,就全部搜了一下没有找到。找到

    http://i1.piimg.com/4851/4614201bc44514f6.png

    我们工程的界面位置整体偏移了 暂时没找到问题所在

    暂时解决方法两种

    1. 自己新加一个 UIImageView 布局
    2. 重新设置文字 线 图片位置

    4 关于 UIViewController 是先执行属性赋值 还是先走 ViewDidLoad 的方法

    今天做了一个界面 加了一个属性 在 ViewDidLoad 使用属性发现竟然为nil

    断点发现 ViewDidLoad 比属性先走。

    对于之前做的都是先走属性 再走 ViewDidLoad

    对比之前的代码 发现我之前布局都是写在 ViewDidLoad 现在写在初始化方法

    我就屏蔽了初始化的代码

    运行先走属性赋值 再走 ViewDidLoad

    设置属性和 ViewDidLoad 的顺序决定设置界面代码的顺序

    5 关于 HTTPS 加密 开启还是可以请求 http 的数据问题

    设置NSAllowsArbitraryLoads为 NO

    发现模拟器对于 HTTP 的请求还是可以请求到数据

    最后发现在真机会提示"The resource could not be loaded because the App Transport Security policy requires the use of a secure connection"

    关于 HTTPS 加密限制流程图

    参考资料:iOS 10 适配 ATS(app支持https通过App Store审核)

    6、注意 某些方法的 执行顺序

     if (self.testBlock) {
          self.testBlock();
     }
     [self dismissViewControllerAnimated:YES completion:^{}];
    
    [self dismissViewControllerAnimated:YES completion:^{
          if (self.testBlock) {
              self.testBlock();
          }
    }];
    
    [self dismissViewControllerAnimated:YES completion:^{}];
    if (self.testBlock) {
          self.testBlock();
    }
    

    上述三者在执行某个问题时,也许效果一样,第二种会有点卡顿,第一种和第三种基本一样,但是一定注意第一种的执行顺序,有时这样写会遇到某种意想不到的BUG,可能外部调用时也会写 [self dismissViewControllerAnimated:YES completion:^{}];, 但是实际上可能的是 那个 self 还没有被释放掉,而导致问题啦。

    另外注意 第二种和第三种的方法不一样,至于使用哪一种看具体需求情况。

    dismissViewControllerAnimated:

    毕竟这个Block 里面的执行时间是在 viewDidDisappear 之后的。

    相关文章

      网友评论

          本文标题:HQ移动20170218期周报

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