扬庆の博客

扬庆の博客

寒江孤影,江湖故人。

任务队列
任务 队列一、任务就是执行的操作的意思,也就是在子线程中执行的那段代码(block块内容)。在GCD中是放在block中的。执行任务有两种方式: 同步执行(sync)和异步执行(async) 同步(Sync)同步添加任务到指定的队列中,在添加的任务执行结束前,会一直等待,直到队列里面的任务完成之后再继续执行,即会阻塞线程。只能在当前线程中执行任务(当前线程,不一定是主线程),不具备开启新线程的能力。 异步(async)线程会立即返回,无需等待就会执行下面的任务,不阻塞当前线程。可以在新的线程中执行任务,具备开启新线程的能力(并不一定开启新线程)。如果不是添加到主队列上,异步会在子线程中...
多线程
多线程一、进程,线程一、进程 1.进程是一个具有一定独立功能的程序,关于某次数据集合的一次运行活动,它是操作系统分配资源的基本单元。 2.进程是指在系统中正在运行的应用程序,就是一段程序的执行过程,我们可以理解为手机上的一个app。 3.每个进程之间是独立的, 每个进程均运行在其专用且受保护的内存空间内,拥有独立运行所需的全部资源。 二、线程 1.程序执行流的最小单元, 线程是进程中的一个实体。 2.一个进程想要执行任务,必须至少有一条线程,应用程序启动的时候,系统会默认开启一条线程,也就是住线程。 三、进程和线程的关系 1.线程是进程的执行单元,进程的所有任务都在线程中执行 2....
数据安全及加密
数据安全及加密一、简术 SSL 加密的过程用了哪些加密方法, 为何这么做? S SL加密过程忽略. SSL加密, 在过程中实际使用了==对称加密==和==非对称加密==的结合. 主要的考虑是==先使用非对称加密进行连接==,这样做是为了避免中间人攻击密钥被劫持,但是非对称加密的效率比较低。 所以一旦建立安全连接后,就可以使用轻量的对称加密。 二、RSA非对称加密算法对称加密【算法】在加密和解密时使用的==同一个密钥==; 而【非对称加密算法】需要==两个【密钥】==来进行加密和解密,这两个密钥是【公开密钥】(public key,简称公钥)和私有密钥(private key,简称私...
iOS15适配新增特性
iOS15新增UIKit要点特性 UINavigationBar, UIToolBar, UITabBar 设置颜色, 需要使用UIBarAppearance API scrollEdgeAppearance standardAppearance 上面这两个要设置成一个appearance, 不然导航栏带滚动视图的时候, 可能会导致本来设置的颜色变成透明的. 12345678910111213141516171819// UINavigationBarlet navigationBarAppearance = UINavigationBarAppearance()navi...
五星好评的评论控件
五星评论控件1 - 5 颗星, 用户可以随意点击。 素材 两张图, 一个是空心,表示没有选中; 一个是实心,表示选中。 高级控件 UICollectionView 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071...
tableView 处理键盘弹出挡住输入框
场景: 自定义cell内部通过Autolayout 布局, 使cell content 能够自动撑开。 123456789cell.editCallBack = {[weak self] in guard let self = self else { return } UIView.performWithoutAnimation { self.tableView.beginUpdates() self.tableView.endUpdates() ...
带标签选择功能的列表视图
带有标签选择的列表界面 应用场景: 评论界面。 使用UICollectionView 布局一个可复选, 自适应宽度的标签选择控件。 步骤: 选用 UICollectionView AutoLayout布局。 外部主控制器传入数据, 刷新, 并加载初始化状态 主控制器刷新layout UICollectionViewFlowLayout 布局方式, 根据系统返回的[UICollectionViewLayoutAttributes]去动态的计算排列方式 . 123456789101112131415161718192021222324252627282930313233343536...
iOS开发Skeleton骨架视图使用
SkeletonView骨架使用github地址入口: https://github.com/Juanpe/SkeletonView 官方的介绍就不重复了, 只介绍如果在项目中方便的应用 **有两个方案 ** 某个界面可能某个控件, 或者某块区域的控件需要骨架图 整个页面都需要骨架图 方案二当我们写一个复杂如果需要骨架图的时候, 这个时候考虑使用一个新的tableView,覆盖到真实页面中去. 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950...
两台电脑同步博客
同步公司和家里电脑Hexo博客安装Node新电脑可能没有安装node环境, 直接浏览器搜索node.js 从官网下载即可. 这里是地址: https://nodejs.org/zh-cn/ 安装npm 安装npm之前要先安装node环境 执行命令 npm install 同步git博文的git仓库将另一台已经配好的hexo源文件上传到git, 最好作为私有仓库. 新电脑git clone下来 安装hexo环境 直接根据官网的命令安装即可 官网地址: https://hexo.io/ npm install hexo-cli -g 最后hexo s 尝试启动本地服务 , 如果正常就...
M1芯片MBP取消系统更新小红点
M1版MacBook Pro 屏蔽系统更新==命令一== 1defaults write com.apple.systempreferences AttentionPrefBundleIDs 0 ==命令二== 1killall Dock 执行完这两句, 系统设置上的小红点就没了; 目前M1处理器的MacBook Pro只能这样设置.
avatar
扬庆
一个程序猿的自我修养📚