什么是LLVM LLVM项目是模块化、可重用的编译器以及工具链技术的集合。 美国计算机协会 (ACM) 将其2012 年软件系统奖项颁给了LLVM,之前曾经获得此奖项的软件和...
什么是LLVM LLVM项目是模块化、可重用的编译器以及工具链技术的集合。 美国计算机协会 (ACM) 将其2012 年软件系统奖项颁给了LLVM,之前曾经获得此奖项的软件和...
原创:知识点总结性文章创作不易,请珍惜,之后会持续更新,不断完善个人比较喜欢做笔记和写总结,毕竟好记性不如烂笔头哈哈,这些文章记录了我的IOS成长历程,希望能与大家一起进步温...
背景 包大小优化是项目开发中不可避免会遇到的,网上关于包大小优化的文章很多,每篇文章说的都不尽相同,笔者曾经根据网上的文章做过包大小优化,但效果不尽人意;因此笔者想根据已有的...
原文地址我们知道,HTTP请求都是明文传输的,所谓的明文指的是没有经过加密的信息,如果HTTP请求被黑客拦截,并且里面含有银行卡密码等敏感数据的话,会非常危险。为了解决这个问...
和你有一样的观点,创建一个UIView对象同时需要创建响应者相关的对象和图层渲染相关的对象,任务量庞大,毫无疑问像上面我们自己创建出来的UIView对象是直接被release的,未能及时释放的是系统创建的一些相关联的对象,并且是autorelease的;
那为何套上一个autoreleasepool还是不行呢,猜测是系统创建出来的autorelease对象超出了我们手动创建的autoreleasepool的作用域
搞懂Objective-C中的autorelease前言 本文是上一篇:搞懂Objective-C中的ARC[https://www.jianshu.com/p/ed84101e0efe]的延伸和补充 上一篇讨论了下面几个问题...
@夜凉听风雨 initWithString定义在NSString头文件中,当用NSString对象调用时候会被编译器优化为@“”字面量的方式创建,并且编译器会提示这样做是无效的,当用NSString子类调用的时候会有不同,比如可变字符串,这个跟xcode版本无关,是编译器层面的优化
搞懂Objective-C中的ARC写这篇文章的背景 前段时间招人,面试了一个多月,有关内存的基础问题,能完全答出来的竟无一人,回答出百分之80的人也寥寥无几,于是决定写这篇文章,简单业务流水线道友们一般都能写...
@神剑若水哥 嗯,这个宏定义用了DISPATCH_EXPECT,确实是极有可能是-1的意思,原因是block执行完毕后内部把其值置为-1的,所以下次执行直接跳过,文章里面说的0是初始时候,即单例block还没有执行过的时候
dispatch_once_t详解概览 定义在once.h中,整个api很少,实现直接内联在头文件,如下 如上就是我们常用的dispatch_once,通过block实现,我们调用的dispatch_once...
意图:定义一个用于创建对象的接口,让子类决定实例化哪一个类,从而将一个类的实例化延迟到其子类适用范围:对象创建接口统一化,实例化职责子类化、局部化 缺点:通常客户端只关心需要...
构造器模式(builder) 意图:将一个复杂对象的构建与表示分离,使得同样的构建过程可以创建不同的表示适用范围:创建复杂对象的算法独立于对象的组成部分和装配方式 实践-富文...
意图:提供一个接口,用来创建一组相关或者相互依赖的对象,而无需指定他们的具体类适用范围:提供一个产品类库,显示它们的接口,隐藏具体实现,使系统独立于产品的创建、组合、表示 缺...
iOS MVC中的设计模式 MVC是一种用户界面架构模式,同样的MVVM、MVP等都是MVC的变种,iOS平台中用UIViewController来描述页面,内嵌一个UIVi...
之前做过App的启动优化,遇到了+load优化的问题,后来想一想除了initializers代替+load还有没有什么好的方法,然后就搜到了运用编译属性__attribute...
先看错误信息 *** Assertion failure in UITraitCollection * _Nonnull _UIGetCurrentFallbackTrait...
视频编辑 最近项目一直在做这个,对标是抖音,剪影,微视以及b站的必剪。陆陆续续看了不少项目,按开发历程记录如下 1.https://github.com/shaopx/Vid...
把单个静态库做成动态库包体积肯定会变大,你的理解是对的;尽量做成静态库合并到主工程,这个理解也是没问题的;现实中多个动态库同时引用了一份静态库的场景,结果会不一样,第四条的描述解释了为什么,可以实操下
iOS编译过程背景 随着需求爆发,代码和图片资源越来越多,包体积越来越大,用户下载成本越来越高,瘦包迫在眉睫,要想瘦包,就需要知道包由何组成,每个组成部分又是怎么来的,这就必须了解编译过程...
写在前面 本文是继iOS编译过程[https://www.jianshu.com/p/9a3204f1772d]、iOS启动过程[https://www.jianshu.co...
block是什么 如上我们写一个简单的block,然后在最后一行打上断点,用xcode查看对象继承链和对象结构,打印如下 可见这个block是一个__NSGlobalBloc...
软件是何以监听到时钟的 硬件时钟生成信号,按照固定频率发出信号,操作系统接收到时钟信号之后将其转换为时钟计数,然后分发给活跃的App进程,进程再分发给注册时间信号的线程 看下...
概览 定义在once.h中,整个api很少,实现直接内联在头文件,如下 如上就是我们常用的dispatch_once,通过block实现,我们调用的dispatch_once...
定义在semaphore.h中,一共三个api 创建信号量 信号量-1 信号量+1 原理:调用dispatch_semaphore_wait之后信号量-1,信号量大于等于0继...