响应式(Reactive Programming,简称RP) 在计算机中,响应式编程是一种面向数据流和变化传播的编程范式。这意味着可以在编程语言中很方便地表达静态或动态的数据...
响应式(Reactive Programming,简称RP) 在计算机中,响应式编程是一种面向数据流和变化传播的编程范式。这意味着可以在编程语言中很方便地表达静态或动态的数据...
一弹指六十刹那,一刹那九百生灭。 --《仁王经》 组件 计算机是一种数据处理设备,它由CPU和内存以及外部设备组成。CPU负责数据处理,内存负责存储,外部设备负责数据的输入和...
简介 图片上下文,图片上下文的绘制不需要在drawRect:方法中进行,在一个普通的OC方法中就可以绘制。 获取图片上下文 使用两个方法同样都可以创建,但是使用第一个方法将来...
Zsh是苹果2019年公布的下一代shell,用来取代bash。相对于bash来说,zsh拥有更多更强大的功能:更智能的自动补全、命令选项提示、更丰富的主题。我的Mac最近总...
一、介绍 2016年10月,ARMV8.3-A指令集中加入了指针认证(Pointer Authentication)机制,在使用寄存器的值作为指针访问数据或代码之前验证其内容...
iOS中malloc和calloc源码分析 calloc 我们知道在iOS创建对象的alloc方法中,最终通过调用calloc方法来开辟内存。如果这里具体流程不够清楚的话,可...
Block技术在iOS开发中非常流行也很方便,但是稍微疏忽就可能会产生引用无法被释放的问题,从而造成内存泄漏。那如何知道哪个Block持有了对象并造成内存泄漏呢? 一个解决的...
拥有一把锤子未必能成为建筑师 最近在项目开发过程中碰到了一些问题,发现在每波迭代开发过程中,经常需要去修改之前的代码,虽然出现这样的情形很正常,新的需求必然会带来新的功能新的...
这篇文章主要了介绍以下两点: 从源代码到可执行文件,编译器都做了什么? Mach-O 可执行文件里面是什么? 注:这篇文章的讨论和示例不使用 Xcode,只使用命令行。 准备...
前言: 按照时间顺序,事件的生命周期是这样的: 事件的产生和传递(事件如何从父控件传递到子控件并寻找到最合适的view、寻找最合适的view的底层实现、拦截事件的处理)->找...
@synchronized 本质是个递归锁,不需要程序员手动加解锁,并且不会产生死锁问题,因此在开发中的使用频率比较高,下面我们来研究一下他的底层实现。 一、底层调用实现 @...
本文首发于 个人博客 多线程中的锁通常分为互斥锁和自旋锁,这篇文章主要向大家介绍一些自旋锁的原理以及atomic的底层实现。 自旋锁 ⚛维基百科上对自旋锁的解释: 自旋锁 是...
一、 ARC环境 单个viewController的生命周期initWithCoder:(NSCoder *)aDecoder:(如果使用storyboard或者xib)lo...
之前做过App的启动优化,遇到了+load优化的问题,后来想一想除了initializers代替+load还有没有什么好的方法,然后就搜到了运用编译属性__attribute...
MyLayout是一套功能全面的iOS开源UI界面布局框架。它囊括了前端所有流行的界面布局技术和解决方案,同时具有如下七大特点: 功能强大。它可以减少我们在开发UI界面时所花...
使用#pragma 声明是彰显 Objective-C 工艺的标志之一。虽然 #pragma 最初的目的是为了使得源代码在不同的编译器下兼容的,但精明的Xcode编码器将 #...