自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 收藏
  • 关注

原创 第三章 表达式

5> 如果块逻辑过于复杂, 则建议重构为函数, 函数调用有性能损失, 但是增加易读性和可维护性。2> 默认有break,如需贯通 -> fallthrough,但必须是块最后一条语句。2> 尽可能减少代码块嵌套, 以使逻辑处于相同层次,以保证功能单一性, 即。2> 位移运算符 右值必须为无符号整数,或可以转换的无显式声明的类型常量。2> 指针运算符为左值,则可用来跟新目标对象状态, 右值为了获取目标状态。2> 左花括号{ 必须在类型尾部,不能另起一行(即 { 不能单独一行)

2024-03-25 23:42:26 331 1

原创 Sourcetree 使用详解

文章目录前言初始界面1 本地1.1 仓库列表1.2 分支情况2 新建2.1 克隆远端仓库到本地2.2 创建远程仓库2.3 添加已经存在的本地仓库导航栏1 基础操作2 分支操作3 文件操作4 贮藏操作工作区1 文件状态2 提交历史3 搜索![在这里插入图片描述](https://img-blog.csdnimg.cn/20200505200018342.png?x-oss-process=image...

2020-05-05 20:29:57 5985 7

原创 iOS、Android持续集成(一) fastlane踩坑集锦

文章目录前言前言21 xcode相关2 homebrew相关3 ruby相关4 gem相关前言本文只记录在移动端持续集成过程中使用fastlane遇到的问题和坑(仅限于Mac环境), 并且如果后续一直使用会持续更新; 同时不再讲述基础的使用流程, 网上文章很多(但是会记录我在每个流程中遇到的坑). 这是github地址和docs文档地址.前言2在进行持续集成的过程中, 会遇到多种环境的安装...

2020-04-05 20:05:18 618

原创 sh脚本格式错误 unexpected EOF while looking for matching ``'

今天在编辑环境变量的时候报了一个错unexpected EOF while looking for matching ``'原因是因为shell 脚本设置了不正确的格式:export PATH=~/flutter/bin:$PATH"// 多了一个引号// 或者使用了中文的符号解决: 修改为正确的英文符号或者去掉多余的符号...

2020-03-30 11:28:45 8367 1

原创 第二章 Go 类型

一 变量数学概念: 没有固定值的数计算机中: 一段或多段用来存储数据的内存1 变量定义/赋值go 是静态语言因此:go变量有固定的类型,且不可隐士转换类型决定了,变量内存的大小和存储格式变量只能改变值,不能改变类型内存分配发生在运行时注意: 通过类型转换函数或者指针操作, 只表示可以以不同方式修改变量值, 不代表修改了变量类型1.1 关键字 varvar x int...

2020-03-29 15:42:14 203

原创 网络基础(四) DNS基础

HTTP协议HTTPS和网络安全深入理解TCP和UDP的区别本文对DNS的基础知识内容以及为了解决HTTP协议的无缓存特点而出现的技术Session/Cookie做一个简单的笔记一 DNS本文完我是个Coder界的小学生, 如有不足, 万望不吝指教参考资料:...

2020-03-21 23:40:07 420

原创 深入理解YYCache缓存策略

YYCache是著名iOS框架YYKit的一个组件是之一, 这里有作者对这个轮子的介绍, 同时有作者对主流的几个缓存框架的性能对比. 我们以YYCache为入口, 逐个分析每个api, 学习缓存如何设计.下面是大神对缓存策略的基本描述是这样的通常一个缓存是由内存缓存和磁盘缓存组成,内存缓存提供容量小但高速的存取功能,磁盘缓存提供大容量但低速的持久化存储来一张图, 概述框架的结构几个主要...

2020-03-12 00:36:10 1745

原创 iOS 深入理解runtime基础(二) weak弱引用管理

上一篇文章系统的讲述了runtime的基本数据结构和类与元类等基础知识; 这篇文章, 我们来深入的探究一下, iOS runtime系统是如何管理weak弱引用指针的!1 创建弱引用变量我们写了下面一行代码id __weak obj1 = obj;编译之后是是这样,{ id obj1; id objc_initWeak(&obj1, obj);}它底层调用了NSObj...

2020-03-08 14:07:09 425

原创 网络基础(三) 深入理解TCP和UDP的区别

目录前言1 连接性质的区别2 可靠性的区别3 传输机制的区别4 功能的区别5 应用场景的区别6 TCP的控制手段6.1 可靠传输(使用停止等待协议)6.1.1 无差错情况6.1.2 超时重传6.1.3 确认丢失(仍然触发超时)6.1.4 确认迟到(仍然触发超时)6.2 流量控制(使用滑动窗口协议)6.3 拥塞控制6.3.1 慢开始、拥塞避免策略(慢启动协议)6.3.2 快恢复、快重传本文完前言...

2020-03-08 11:17:58 768

原创 网络基础(二) HTTPS和网络安全

目录一 HTTP的不足1 通信使用明文可能会被窃听1.1 TCP/IP 是可能被窃听的网络1.2 Charles抓包原理2 不验证通信方的身份就可能遭遇伪装2.1 任何人都可以发请求3 无法证明报文完整性,可能已遭篡改3.1 接收的内容可能有误3.2 即使加密也无法保证被篡改二 HTTP的升级版HTTPS1 HTTPS和HTTP的区别2 HTTPS的外壳SSL/TLS3 相互交换密钥的公开密钥加密...

2020-03-08 00:15:21 851

原创 网络基础(一) HTTP协议

前言不论iOS还是Android开发, 也不论客户端前端还是后端, 网络都是我们是在工作中或者自我知识储备体系中必不可少的一部分. 推荐大家读HTTP权威指南, 或者图解TCP/IP和图解HTTP一 HTTP是什么全称超文本传输协议, HTTP协议是TCP/IP协议族中的一种, 是他的一个子集! 同时, HTTP协议建立在TCP/IP之上的协议.我们先来介绍一下TCP/IP1 TCP/...

2020-03-07 17:12:49 738

原创 git 给命令起别名与配置多个SSH

上一篇文章总结了git的常用命令和基本使用. 这次分享两个工作中git使用的小技巧一 配置git别名对于我来说, 能少输一个单词就少输一个单词, 能少输一个字母就少输一个字母. 打个比方, 检出分支, git checkout , 这单词长不长啊, 我觉得非常长, 能不能短一些啊, 于是就需要起别名了, 别名能使你的命令更简单1 配置在哪假如你配置了别名, 把文件放在了一个不生效的位置, ...

2020-03-07 12:13:11 570

原创 git常用命令和基本操作

开始之前本文仅对平时工作和学习中对git的使用做一个总结, 同时本文不再讲述什么是git, git是怎么诞生的, git的安装与配置, 以及一些专业术语(主要是不敢乱说)等, 本文只专注于用. 如果需要相关知识, 请查看廖雪峰老师的教程, 如果英文能力比较好可以直接看Git官方教程(当然, 也有中文版的教程)但是我们必须要知道, 为什么要用git?1 为什么用git我问个别人, 为啥用gi...

2020-03-07 11:21:14 653

原创 第一章 Go语言概述

一 特征1 语法简单++ — — 由运算符级降级为语句go取消了分号, 取消了分号, 取消了末尾分号! 这点和swift一致(可以看出趋向简洁是个趋势)默认阻止指针运算(这点和OC不同, 其实Go的两位开发大佬, 有一个是C的创始人, 就是KR中的K, 大佬表示被C的指针快折磨死了)切片和字典成为内置类型,并做了运行时优化2 并发模型Goroutine----类协程的方式处理并发...

2020-03-06 14:42:43 297

原创 两道C题

题一这个知识点, 之前在书中有看到过, 但是当时并不是太理解, 书中是这么说的:在C中, 对一个指针+1的结果是对该指针增加一个存储单元. 对于数组而言, 地址会增加到下一个元素.刚看到这道题的时候, 我想这题我会啊! &a是数组的地址, 同时也是数组中第一个元素的地址, +1表示, 指向了数组的第二个元素, 简单, 选D!然鹅, 终究是too young, 答案是B看了...

2020-03-06 13:28:29 202

原创 iOS 深入理解runtime基础(一)

目录前言runtime是什么三个重要概念一 各主要对象数据结构1 objc_object2 objc_class2.1 cache_t2.2 class_data_bits_t3 isa4 method_t4.1 函数的四要素4.2 types5 一张图表明各数据结构之间的关系二 实例对象、类对象和元类对象1 实例方法调用时是如何查找的2 self和super三 消息传递与消息转发1 消息传递流程...

2020-03-06 10:49:58 754

原创 OC动态语言特性(二): 深入理解KVO、KVC及底层实现

目录前言一 KVO1 什么是KVO, 它是如何实现的2 触发KVO的条件二 KVC1 KVO的两个方法2 KVO和面向对象三 属性关键字和分类比有什么区别?前言本文所有runtime部分, 均来自objc4Apple官方源码一 KVO如果你看过斯坦福白胡子老爷爷的iOS视频, 那么你应该看到过下面这张图.白胡子老爷爷讲述了KVO的一个重要应用, 实现在Model和Controller之...

2020-03-04 21:21:42 295

原创 OC动态语言特性(一): 类别(Category)、关联对象(AssociatedObject)在运行时的实现原理

目录前言:一 分类 Category1 用处2 特点3 底层原理二 关联对象 Associated Object1 是什么2 怎么用3 为分类添加关联对象的本质三 扩展 Extension和分类比有什么区别?前言:本文所有runtime部分, 均来自objc4苹果官方源码一 分类 Category1 用处1.1 分类可以为添加类方法, 协议, 属性(只有get和set方法的声明, 没有对...

2020-03-04 18:59:59 519

转载 iOS 深入理解列表卡顿原理和滑动优化方案

转自 ibireme 保持界面流程的介绍大佬的文章太好太精彩 这篇文章会非常详细的分析 iOS 界面构建中的各种性能问题以及对应的解决思路,同时给出一个开源的微博列表实现,通过实际的代码展示如何构建流畅的交互。Index演示项目屏幕显示图像的原理卡顿产生的原因和解决方案CPU 资源消耗原因和解决方案 GPU 资源消耗原因和解决方案 AsyncDisplayKitASD...

2020-03-04 13:58:45 2947

原创 iOS 事件传递与响应链原理

目录一 iOS中的事件1 事件的产生和类型2 响应者对象3 UIview和CALayer二 事件传递和响应机制1 事件的传递2 系统实现2 视图的响应三 事件和runloop一 iOS中的事件1 事件的产生和类型用户对iOS设备进行了一些操作, 比如点击屏幕、滑动屏幕, 摇晃设备, 拖拽图片, 放大图片, 远程控制(蓝牙)等等, 这些操作生成了事件(UIEvent). 事件被官方根据具体操作...

2020-03-04 13:21:49 1980

原创 UITableView重用机制与数据源同步

目录一 重用机制1 问题2 原理3 模拟重用池二 数据源同步1 问题2 解决方案2.1 并发访问&数据拷贝2.2 串行访问一 重用机制1 问题UITablevView是开发中最常用的实现滚动列表的方案之一, 列表的具体内容载体由UITablevViewCell, 负责一个列表可能有成千上万个cell,然而iOS设备的内存是有限的,无限制的创建cell将会耗尽设备内存进而导致程序cra...

2020-03-04 02:01:42 332

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除