更换电脑小记 发表于 2020-07-29 配置公司Gitlab和个人Github ssh老电脑上使用config管理公司Gitlab和个人Github的ssh在新电脑上重新配置,把老电脑.ssh/ 下的几个公钥私钥替换过去 git clone 过慢或失败git 仓库1 报错(这个错误是https限制了传输大小) 123fatal: The ... 阅读全文 »
Git工作流 发表于 2018-03-26 SVN 和 Git 在日常使用中的明显差异合并对提交过程的保留 git:合并操作保留原有的提交过程(即保留了合并来源的作者、提交次数、分离提交的内容)。 svn:合并操作把来源多个提交合并成了一个合并提交,即在提交历史中Crash了自然的提交过程。 保留原有的提交过程,可以无需繁琐追踪历史就方便 ... 阅读全文 »
强引用(weak)、弱引用(strong)、dalegate/block/NSTimer中的循环引用、weakSelf、strongSelf 发表于 2018-03-17 强引用和弱引用:OC中的内存管理是通过“引用计数器”来实现的。一个对象的生命周期取决于它是否还被其他对象引用(是否retainCount=0)。但在有些情况下,我们并不希望对象的销毁时间由是否被其他对象引用来决定,而是这个对象本该是什么时候销毁就什么时候被销毁。这时,我们得引入“强引用”和“弱引用” ... 阅读全文 »
NSTimer 发表于 2018-03-15 You use the NSTimer class to create timer objects or, more simply, timers. A timer waits until a certain time interval has elapsed and then fires, se ... 阅读全文 »
RunLoop 发表于 2018-03-12 程序、进程和线程程序、进程和线程 程序本身只是指令、数据及其组织形式的描述,进程才是程序(那些指令和数据)的真正运行实例。而线程是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同 ... 阅读全文 »
OC里的const/static/extern、UIKIT_EXTERN、#define、#ifdef/#else/#endif 发表于 2018-03-06 宏的常见用法: 常见字符串抽成宏 常见代码抽成宏 const(常量)的作用:当有字符串常量的时候,苹果推荐我们使用const,苹果经常把常用字符串定义成const 宏与const的区别 编译时刻:宏是预编译(编译之前处理),const是编译阶段。 编译检查:宏不做检查,不会报编译错误,只是替换, ... 阅读全文 »
OC中的 全局变量、局部变量、静态全局变量、静态局部变量 发表于 2018-03-06 将从存储方式、生命周期(时间)、作用域(空间) 三个维度来区分它们。 1 存储方式 静态存储方式 静态存储方式是 程序一开始运行时就分配存储空间,从程序开始运行到程序结束,存储空间都保持不变的存储方式。 动态存储方式 动态存储是 程序在运行时,需要使用时才分配存储空间,不需要使用时立即释放的存 ... 阅读全文 »
多线程中的锁总结 发表于 2018-02-28 本文非原创 知识整理大佬的博客 @synchronized dispatch_semaphore NSLock NSRecursiveLock递归锁 NSConditionLock条件锁 NSCondition pthread_mutex pthread_mutex(recursive) OSSp ... 阅读全文 »
多线程运用 发表于 2018-01-31 系列文章: 多线程 多线程 pthread、NSThread 多线程 GCD 多线程 NSOperation 多线程运用 多线程运用线程同步所谓线程同步就是为了防止多个线程抢夺同一个资源造成的数据安全问题,所采取的一种措施。当然也有很多实现方法,请往下看: 互斥锁 :给需要同步的代码块加一个互斥 ... 阅读全文 »