iOS字符串安全截取及任意位置插入 一个小问题引起的思考最近做一个输入框粘贴插入文字的需求时遇到了一个问题: 输入框中输入了文字和表情符😃😃😃(emoji)计算出的光标location和实际感官上的字符个数不一致,最后导致文字插入的位置不对。 这是为什么呢? 查阅资料发现是Unicode编码和UTF-16编码的设计特点导致的此现象。 字符和字素簇定义说明 Characters and Grapheme Clusters I 2021-04-22 iOS #多读文档
NSCache NSCacheIntroduction A mutable collection you use to temporarily store transient key-value pairs that are subject to eviction when resources are low. 一种用于临时存储临时键值对的可变集合,在资源不足时容易被回收。 2021-04-20 iOS #学习笔记
一帖看透iOS14 小组件 自iOS8之后,苹果支持了扩展(Extension)的开发,开发者可以通过系统提供给我们的扩展接入点 (Extension point) 来为系统特定的服务提供某些附加的功能。但iOS14后,苹果更新了扩展组件,引入了新的UI组件:WidgetKit 而舍弃了iOS14以下版本的Today Extension组件 Widget介绍这里有一份官方的小组件使用指南 简单来说:小组件相当于一个动态程 2021-02-23 iOS #小组件
APP内部代理 APP内部代理 wifi的代理配置不会自动保存?使用iPhone的大概都遇见过这种事情: 每次需要给APP抓包的时候都需要到设置-WIFI-下手动配置代理,然而当我们连着代理的时候无法访问App Store或其他禁止代理的服务,这个时候我们会把WIFI的代理给关闭。 弄完杂七杂八的东西之后回到抓包调试,打开WIFI设置页,手动配置代理… ??? 我刚才填的本机IP和端口呢?我还得再输一次?WTF! 2021-01-18 iOS #有用的
runloop 学习笔记 从一个问题开始Runloop 和线程有什么关系? Runloop 和 线程是密不可分的,可以说Runloop是为线程而生的。线程和runloop是一一对应的,我们只可以在当前线程内操控当前线程对应的Runloop。 Runloop是懒加载的在线程第一次获取他的时候创建,在线程结束的时候销毁。 主线程的runloop是默认启动的,因为主线程需要一直监听事件。子线程的Runloop默认是不启动的,需要 2020-09-25 iOS #学习笔记
__block 关键字探究 __block 是干什么用的1234567int val = 10; MyBlock block = ^{ NSLog(@"val = %d",val);};block();//输出2020-09-22 14:24:47.018497+0800 MyDemo[2987:2658512] val = 10 从一段简单的code说起,在block中修 2020-09-23 iOS #学习笔记
GCD相关知识学习笔记 致未来的我:你是不是有点忘记了GCD的一些知识?恰巧这几天我有看这些,让我给你讲讲吧?GCD是基于C语言的API,开发者只需要将任务放在block内,并指定好追加的队列,就可以完成多线程开发. 知识点速览1.队列: 串行队列、并发队列 2.任务: 同步任务、异步任务 3.队列和任务的交叉组合使用 4.死锁的产生和预防 2020-09-22 iOS #学习笔记