library not found for -libstdc++.6.0.9

原因

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

解决办法

  1. 下载-libstdc++.6.0.9 提取码: rrkb
  2. 如果是运行模拟器,执行命令拷贝到如下地址即可

    open /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/usr/lib/
    
  3. 真机拷贝到下面的地址

    open /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/lib/
    
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开发