Photokit保存GIF图片

最近开发的过程中遇到了需要保存GIF图片到相册的需求,网上找到的都是使用ALAssetsLibrary库的方法,iOS 9.0以后已放弃使用,推荐使用Photos库来操作。代码如下:

Read more   2020/3/12 posted in  iOS开发

[CocoaPods报错] Failed to connect to GitHub to update the CocoaPods/Specs specs repo - Please check if you are offline, or that GitHub is down

问题描述

使用pod update或者pod repo update时,出现了如下错误

Failed to connect to GitHub to update the CocoaPods/Specs specs repo - Please check if you are offline, or that GitHub is down

一看以为是网络问题,经过检查后不是,原因是2018年2月后,弱密码标准被删除

Read more   2020/3/5 posted in  BUG记录

CocoaPods安装错误 RPC failed; curl 56 LibreSSL SSL_read: SSL_ERROR_SYSCALL, errno 60

问题描述

执行pod update --no-repo-update时提示如下错误

Installing SPAlert 2.1.1 (was 1.0.2)

[!] Error installing SPAlert
[!] /usr/bin/git clone https://github.com/IvanVorobei/SPAlert.git /var/folders/zx/ggz348td2gzck1vdqgh6bvfr0000gn/T/d20200228-27956-10msht5 --template= --single-branch --depth 1 --branch 2.1.1

Cloning into '/var/folders/zx/ggz348td2gzck1vdqgh6bvfr0000gn/T/d20200228-27956-10msht5'...
error: RPC failed; curl 56 LibreSSL SSL_read: SSL_ERROR_SYSCALL, errno 60
fatal: the remote end hung up unexpectedly
fatal: early EOF
fatal: index-pack failed
Read more   2020/2/28 posted in  BUG记录

xcodebuild: error: SWIFT_VERSION '3.0' is unsupported, supported versions are: 4.0, 4.2, 5.0.

问题描述

最近重构了一下自己写的LJTool这个库,在使用CocoPods 发布时遇到这个问题,执行pod lib lint LJTool.podspec提示如下错误

- NOTE  | xcodebuild:  error: SWIFT_VERSION '3.0' is unsupported, supported versions are: 4.0, 4.2, 5.0. (in target 'LJTool' from project 'Pods')
Read more   2020/2/28 posted in  BUG记录

library not found for -libstdc++.6.0.9

原因

升级到XCode10后,由于去掉陈旧的libstdc++库替换为libc++,-libstdc++.6.0.9就被删除了

Read more   2020/2/12 posted in  BUG记录

UILabel多行文本高度计算

多行文本高度的计算在开发过程中经常会用到,一般都是使用boundingRect(with:options:attributes:)方法来计算高度。

Read more   2019/8/6 posted in  iOS开发

Runtime-类对象、实例、元类

类对象(objc_class)

Objcetive-C类是由Class类型来表示的,它实际上是指向objc_class结构体的指针。

typedef struct objc_class *Class;
Read more   2019/7/1 posted in  iOS开发

iOS多线程 串行队列、并发队列以及同步执行、异步执行

关键词的理解

1. 进程

正在运行的程序被称为进程,负责程序运行的内存分配,每一个进程都有独立的虚拟内存空间

2. 线程

线程是进程中最小的执行单元,一个进程可以有多条线程,但是至少包含一条线程,被称为主线程。线程里有非常多的任务。

Read more   2019/6/26 posted in  iOS开发

iOS使用DispatchSemaphore实现串联请求

DispatchSemaphore

信号量,用来控制并发访问资源的机制,可以控制并发数量。

Read more   2019/6/25 posted in  iOS开发

iOS多个网络请求完成后执行下一步

  • 使用GCD的DispatchGroup实现

每次进入异步任务前都要调用enter方法,完成后执行leave,enterleave都是成对存在,如果enterleave次数不是一一对应,group就不会销毁。

Read more   2019/6/22 posted in  iOS开发