macOS 一款自动上传图床的APP 发表于 2019-12-24 | 更新于 2020-09-09 | 分类于 macOS macOS开发和iOS有很多相关之处,也有很多不同之处,今天带你使用最优雅的APP.dmg,一款名叫AUY的自动上传图床的APP,没有服务器,不担心数据被盗,可以上传剪切板中的图片,可以拖动文件上传、智能的APP。 AUY 传送门总结 更少的操作步骤完成目标。 阅读全文 »
APP 资源管理优化 发表于 2019-12-05 | 更新于 2020-09-09 | 分类于 iOS 在APP中,使用 X1、X2、X3已经是司空见惯的事情了,网上出了清空不再使用的图片和类,是不是做完这些不能再进一步优化了,答案是否定的,当然可以的,今天再探究一下资源管理优化。 资源大部分是图片,说到图片必须讲一下位图和矢量图 位图 位图图像(bitmap),亦称为点阵图像或栅格图像,是由称作像素 ... 阅读全文 »
iOS图片优化 发表于 2019-12-03 | 更新于 2020-09-09 | 分类于 iOS 基于现在iOS11新生成的图片都是HEIF,该图片使用[UIImage image:name]已不在那么优雅,图片大小为1.8m大小的,读进手机内存,直接飙升了45M,这是我们不想看到的结果,一个页面有多个这样子的图的话,恐怕就是灾难了。 既然原图不能读入,那么如何可以用更少的内存和CPU来解决呢? ... 阅读全文 »
MVC、MVP、MVVM、分层设计浅谈 — (13) 发表于 2019-12-01 | 更新于 2020-09-09 | 分类于 iOS 这篇文章主要讲解关于架构的一些思考,通过这篇文章你将了解到 MVC MVC变种 MVP MVVM 分层设计的优缺点 没有最好的架构,只有最适合业务的架构。 MVC苹果版本的MVC是Model和VC和交互,VC和View交互 优点:View和Model可以重复利用,可以独立使用 缺点:Co ... 阅读全文 »
iOS底层原理 内存管理 那些你不知道的原理汇总 --(12) 发表于 2019-12-01 | 更新于 2020-09-09 | 分类于 iOS 看完本文章你将了解到 DisplayLink和timer的使用和原理 内存分配和内存管理 自动释放池原理 weak指针原理和释放时机 引用计数原理 / DisplayLinkCADisplayLink是将任务添加到runloop中,loop每次循环便会调用target的selector,使用 ... 阅读全文 »
iOS底层原理 多线程之安全锁以及常用的读写锁 --(11) 发表于 2019-12-01 | 更新于 2020-09-09 | 分类于 iOS 只要提到了多线程就应该想到线程安全,那么怎么做才能做到在多个线程中保证安全呢?这篇文章主要讲解线程安全。 线程安全线程安全是什么呢?摘抄一段百度百科的一段话 线程安全是多线程编程时的计算机程序代码中的一个概念。在拥有共享数据的多条线程并行执行的程序中,线程安全的代码会通过同步机制保证各个线程都可以 ... 阅读全文 »
iOS底层原理 多线程之GCD看我就够了 --(10) 发表于 2019-12-01 | 更新于 2020-09-09 | 分类于 iOS RunLoop和线程的关系,以及Thread如何保活和控制生命周期,今天我们再探究下另外的一个线程GCD,揭开蒙娜丽莎的面纱。 GCD 基础知识GCD是什么呢?我们引用百度百科的一段话。 Grand Central Dispatch (GCD)是Apple开发的一个多核编程的较新的解决方法。它主要 ... 阅读全文 »
iOS底层原理 RunLoop基础总结和随心所欲掌握子线程RunLoop生命周期 --(9) 发表于 2019-12-01 | 更新于 2020-09-09 | 分类于 iOS 使用钩子实现了对字典和数组的赋值的校验,顺便随手撸了一个简单的jsonToModel,iOS除了runtime还有一个东西的叫做runloop,各位看官老爷一定都有了解,那么今天这篇文章初识一下runloop。 什么是runloop简单来讲runloop就是一个循环,我们写的程序,一般没有循环的话, ... 阅读全文 »
iOS底层原理 runtime - super、hook、以及简单应用--(8) 发表于 2019-12-01 | 更新于 2020-09-09 | 分类于 iOS 关键字 super关键字super,在调用[super init]的时候,super会转化成结构体__rw_objc_super 12345struct __rw_objc_super { struct objc_object *object; //消息接受者 str ... 阅读全文 »
iOS底层原理 runtime- objc_msgSend拾遗基础篇--(7) 发表于 2019-12-01 | 更新于 2020-09-09 | 分类于 iOS arm64之后isa是使用联合体使用更少的空间存储更多的数据,以及如何自定义和使用联合体,objc_class->cache_t cache是一个是缓存最近调用class的方法,当缓存剩余空间小余1/4则进行扩容,扩容为原来的两倍,扩容之后,已存储的method_t扩容之后之后被清空。今天我们 ... 阅读全文 »