0%

前言

当初编写 0.x 版本时, 尚未考虑过多逻辑, 整体架构就是简单的封装系统逻辑, 导致在后期频频出问题, 而打补丁只会出更多的问题, 毕竟底子并没有打好, 所以就起了重构的心思.

Read more »

iOS 开发小技巧 —- Masonry 中使用 Margin

为了让界面的布局显示正确, 并且在异形屏上显示正确, 那真是无所不用其极, 什么 edgesForExtendedLayout, automaticallyAdjustsScrollViewInsets, insetsLayoutMarginsFromSafeArea, contentInsetAdjustmentBehavior, autoresizingMask 还有 safeArea, 统统都有用, 但个个都很麻烦, 甚至复杂的界面还会出现设置无效的情况. 那么, 有没有一个一劳永逸的方法呢?

有, Masonry 或者 AutoLayout 中的带有 Margin 后缀的约束

Read more »

搭建 Docker + Flask 后端

使用 Docker + Flask + Gunicorn + Gevent + nginx 来搭建纯 API 后端

目标

使用 Docker 编排管理服务, 使用 Shell 脚本一键化部署流程

Read more »

接触 BUG

  前几天突然收到一朋友发来的消息, 说是在 iOS 12 上遇到了一个新的 BUG, 问我怎么看? 我说新系统遇到 BUG 不是很正常吗? 大概是个什么情况?
  经过朋友说明, 大概是这么个现象: 他用了一个第三方下载管理器进行视频下载, 明明是设置了后台下载的, 但 App 一推到后台再回到前台, 下载进度就不动了, 但任务依然还在继续下载. 系统是 iOS 12, 手机是 iPhone 7.
  

Read more »

场景

xcasset 添加 Data Set 内容, 如 .mp3, .mp4 等非图片内容时, 通过 NSBundle 无法获取文件路径, -[NSBundle pathForResource:ofType:] 方法返回为 nil.

目标

不改变文件存放位置的前提下, 获取文件的路径或二进制内容.

Read more »

开始

  创建一个 Test 测试类, 重写初始化方法:

1
2
3
4
5
6
7
- (instancetype)init {
self = [super init];
if (self) {
// do something...
}
return self;
}

疑问:

  • 为何要执行 [super init] ?
  • [super init] 的结果为何要 self 接收?
Read more »