longlong Blog

我为我心

AFNetworking原理

阅读源码千头万绪,即使是分析文章也很少有能讲解清楚。真正对读懂整个框架结构帮助最大的是设计模式。识别框架中使用的设计模式,既能学习别人使用设计模式和原理的方式,也能快速掌握整个框架脉络。并且能帮助记忆。 概述 整个AFNetworking框架的核心类是AFURLSessionManager,主要封装了系统类NSURLSession进行网络请求。 AFHTTPSessionManage...

OC运行时机制

一、内存结构 objc_class OC对象都会转为结构体。OC对象对应的结构体就是objc_class。 1 2 3 4 5 6 struct objc_class { Class isa; Class superclass; cache_t cache; // 方法缓存 class_data_bits_t bits; /...

Swift 中的消息派发

什么是消息派发? 消息派发,英文名称 Method Dispatch,是指程序在运行过程中调用某个方法的时候决议使用哪个具体指令的过程。消息派发的行为在我们代码中时时刻刻的在发生。了解消息派发的机制对于我们日常写出相对高效的代码也是有利的,日常 Coding 的时候遇到一些派发相关的问题,也能做到心里有数。 对于编译型语言来讲,有主要三种类型的方法派发方式:Direct Dispatch...

iOS编译原理

前言 iOS开发使用Object-C和Swift编译语言,两者都需要通过编译器(Clang + LLVM)把代码编译器生成机器码,机器码可以直接在CPU上执行。接下来详细介绍一下这两种语言的优缺点,可以更深入的理解为什么移动端开发会采用编译语言。 编译语言和直译式语言两种编程语言的优缺点: 编译语言/直译式语言优缺点比较: 编译/直译式 优点...

组件化结构

"组件化组件结构"

组件化结构 项目总的架构图大体如下,但是组件分层并没有固定标准,图片是下面描述有不一致地方,但大体如此。 一、基础层 主要负责丰富基础能力。 1、功能丰富的 Category 类型工具库 YYCategories YYCategories中对UIKit, Foundation, Quartz中的常用类添加分类,里面还有好多实用的API来供我们项目开发使用。由于没有前缀,有的时...

常用 Git 命令清单

" Git 命令"

常用 Git 命令清单 我每天使用 Git ,但是很多命令记不住。 一般来说,日常使用只要记住下图6个命令,就可以了。但是熟练使用,恐怕要记住60~100个命令。 下面是我整理的常用 Git 命令清单。几个专用名词的译名如下。 Workspace:工作区 Index / Stage:暂存区 Repository:仓库区(或本地仓库) Remote:远程仓库 ...

组件管理

"组件化多组件管理"

组件管理 这种管理方式只适合使用本地组件的开发阶段,如果组件使用发版的,则需要通过版本管理来协同开发。 组件化后,出现几十个组件。组件的管理成为问题。 1、组件创建样式杂乱多样,使用方式不统一。 2、多人使用组件,组件更新后无法通知到。 3、新人跑项目,需要下载全部组件,操作麻烦。 处理这个问题最好的办法是使用包管理工具,使用shell脚本进行统一化批量操作。 coco...

组件化的资源管理

"组件化后图片,文字,颜色如果管理方便呢"

组件化的资源管理 初始方案为组件的资源在各个组件里管理。(但多个项目公用是资源无法更替) 然后所有组件的资源,放在资源组件里管理。(但更换项目需要更换分支,使用并不方便) 最后组件资源统一放壳工程里。(最后实现未定)

直接访问内网方法

"代理是什么"

前一段时间因为疫情,在家里窝了很久,闷的厉害。突然喜欢上折腾硬件,就自己组装了一台电脑,并在上面搭建了一个NAS。集中管理照片,下载电影、投影仪看电影,还是非常方便的。 但是想要外网访问就是一个问题,最主要是需要固定IP,要问运营商要,对于一个内向的人,还不如自己找方法,绕过去。 直接访问内网方法 最先想到的办法就是反向代理。不对是在网上查到的方法。但是看的云里雾里,只能查...

学习规划

"如何学习"

学习规划 基础学习 开发进步的基石 一、数学基础( 数学以及深度学习无进展) 1、学习微积分、线性代数、概率论。 2、离散数学,离散数学是算法的前置课程。 3、信息论和密码学 二、计算机基础 1、算法基础 ​ 看算法书籍 2019年07月 2、计算机网络 3、计算机原理 ​ 刷算法题目、看计算机网络和计算机原理 三、软件基础 1...