HQ移动20170218期周报

1. Duplicate interface definition for class 错误

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

0981C875-E24E-41BA-A03C-4DBCBB40F41B

搜索工程文件

49E356AB-E6B1-4A46-A781-F264E14D655E

没有找到多余的文件。

搜索代码看一下

5C227C99-D3DB-458E-8127-18B2874B11C5

也没有发现多次@interface定义的。

搜索Build Phases

9B9AA661-20E5-42F7-ABC0-151B4EB19BCC

还是没发现异常。

最后就删除工程的 重新导入还是抱错。

没办法用全能搜索。

3C341AA6-3CB5-470A-BDDC-8E083B23D2F0

果然发现两处 因为我今天我用 AppCode 挪动了代码 估计是之前源文件没有删除的缘故

删除源文件 错误消除

从上面的错误可以看出 编译的过程不是取决于工程引入的文件 而是相对于工程目录下面的所有文件进行编译的。

2 怎么让试图最顶端从状态栏开始

@property(nonatomic,assign) UIRectEdge edgesForExtendedLayout NS_AVAILABLE_IOS(7_0); // Defaults to UIRectEdgeAll

设置edgesForExtendedLayout 为UIRectEdgeNone 参考资料:ios 当把导航栏隐藏的时候,视图不能到达最上方怎么解决

3 怎么剪切 Mac 上面的文件

  1. Command+C复制文件
  2. Command+Option+V就可以剪切刚才的文件了

参考资料:终于知道mac下剪切文件的快捷键了

4.设置 UITableViewCell 自带 ImageView 的位置

网上说只可以用过 - (void)layoutSubViews 设置

- (void)layoutSubviews {
    [super layoutSubviews];
    self.imageView.frame = CGRectMake(320 - 44, 0, 44, 44);
    self.imageView.backgroundColor = [UIColor blackColor];
}

我们应用出现的界面

Demo 的界面

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 之后的。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏智能大石头

与ObjectDataSource共舞

4,ORM组件XCode(与ObjectDataSource共舞) XCode为了能更方便的解决大部分问题,不得不“屈身”于ObjectDataSource。...

2205
来自专栏移动开发之家

Flutter完整开发实战详解(三、 打包与填坑篇)

作为系列文章的第三篇,继篇章一和篇章二之后,本篇将为你着重展示:Flutter开发过程的打包流程、APP包对比、细节技巧与问题处理。本篇主要描述的Flutter...

1381
来自专栏贾鹏辉的技术专栏@CrazyCodeBoy

React Native 启动白屏问题解决方案,教程

尊重版权,未经授权不得转载 本文出自:贾鹏辉的技术博客(http://www.devio.org) 目录 问题描述 问题分析 Android启动白屏解决...

5316
来自专栏葡萄城控件技术团队

MVC5:使用Ajax和HTML5实现文件上传功能

引言 在实际编程中,经常遇到实现文件上传并显示上传进度的功能,基于此目的,本文就为大家介绍不使用flash 或任何上传文件的插件来实现带有进度显示的文件上传功能...

61510
来自专栏Puppeteer学习

Headless Chrome:服务端渲染JS站点的一个方案【中篇】【翻译】防止重新渲染优化

2323
来自专栏Golang语言社区

剖析Go编写的Socket服务器模块解耦及基础模块的设计

Server的解耦—通过Router+Controller实现逻辑分发 在实际的系统项目工程中中,我们在写代码的时候要尽量避免不必要的耦合,否则你以后在更新和维...

3704
来自专栏java一日一条

优化 iOS 程序性能的 25 个方法

ARC(Automatic ReferenceCounting, 自动引用计数)和iOS5一起发布,它避免了最常见的也就是经常是由于我们忘记释放内存所造成的内存...

1344
来自专栏一“技”之长

iOS程序框架设计之皮肤切换功能 原

        移动应用的开发中,有时我们会需要例如更换皮肤此类的功能,andorid采用xml配置UI的方式,这个问题或许还容易解决些,iOS的主要UI逻辑则...

1174
来自专栏移动开发之家

Flutter完整开发实战详解(三、 打包与填坑篇)

作为系列文章的第三篇,继篇章一和篇章二之后,本篇将为你着重展示:Flutter开发过程的打包流程、APP包对比、细节技巧与问题处理。本篇主要描述的Flutter...

6003
来自专栏QQ音乐技术团队的专栏

使用 Jest 进行前端单元测试

目前 Jest 已经在 Facebook 开源的 React, React Native 等前端项目中被做为标配测试框架。下面简单介绍一些 Jest 比较有用的...

9859

扫码关注云+社区

领取腾讯云代金券