任务 队列一、任务就是执行的操作的意思,也就是在子线程中执行的那段代码(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新增UIKit要点特性
UINavigationBar, UIToolBar, UITabBar 设置颜色, 需要使用UIBarAppearance API
scrollEdgeAppearance
standardAppearance
上面这两个要设置成一个appearance, 不然导航栏带滚动视图的时候,
可能会导致本来设置的颜色变成透明的.
12345678910111213141516171819// UINavigationBarlet navigationBarAppearance = UINavigationBarAppearance()navi...
五星评论控件1 - 5 颗星, 用户可以随意点击。
素材
两张图, 一个是空心,表示没有选中; 一个是实心,表示选中。
高级控件
UICollectionView
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071...
场景: 自定义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...
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版MacBook Pro 屏蔽系统更新==命令一==
1defaults write com.apple.systempreferences AttentionPrefBundleIDs 0
==命令二==
1killall Dock
执行完这两句, 系统设置上的小红点就没了; 目前M1处理器的MacBook Pro只能这样设置.