本文源码来自于 objc4-756.2 版本; 一、SideTable 本文研究 sideTable 在 objc4 源码中的使用及其作用,从而解析 iOS 中引用计数器和弱...
![240](https://cdn2.jianshu.io/assets/default_avatar/1-04bbeead395d74921af6a4e8214b4f61.jpg?imageMogr2/auto-orient/strip|imageView2/1/w/240/h/240)
本文源码来自于 objc4-756.2 版本; 一、SideTable 本文研究 sideTable 在 objc4 源码中的使用及其作用,从而解析 iOS 中引用计数器和弱...
本文Demo的完整工程代码, 参考这里的EqualAndHashDemo 目录 为什么要有isEqual方法? 如何重写自己的isEqual方法? 为什么要有hash方法? ...
前言 当我们要编写一个echo服务器程序的时候,需要对用户从标准输入键入的交互命令做出响应。在这种情况下,服务器必须响应两个相互独立的I/O事件:1)网络客户端发起网络连接请...
1. 关于Method swizzling的两种写法。 简单实现: 需要注意的是,class_getInstanceMethod如果没在当前类中查找到对应方法那么就会在整个继...
概述 YYKit是集大成者的第三方表现,堪称国内最优秀的框架。因此,在YYKit中有太多的技术点值得挖掘思考,本文用来记录YYKit源码阅读中的心得以及认为有价值的技术点 Q...
前言 应用性能的衡量标准有很多,从用户的角度来看,卡顿是最明显的表现,但这不意味看起来不卡顿的应用就不存在性能问题。从开发角度来看,衡量一段代码或者说算法的标准包括空间复杂度...
前言 项目中有对本地图片做了一层封装,简单来说就说使用imageWithContentsOfFile 来初始化图片,所有取图片的地方都是通过这层封装来取图片,因为这里没有解码...
webp是谷歌官方推出的一种比jpg和png更优压缩算法的图片格式。谷歌在推出这种格式的时候也推出了一些工具,可以方便地实现jpg和webp之间的相互转换。 在谷歌的webp...
本文总结了优化应用中图片资源大小的几种方法,有效的使用这些方法,可以减小应用的图片资源体积。 在使用这些优化方法之前,还是有几个基本的原则要去遵守: 使用Assets来管理资...
前言 在开篇之前思考几个问题? 1、继承最大的缺点是什么? 2、为什么说耦合也可能是一种需求? 3、有哪些场景不适合使用继承? 4、继承本身就具有高耦合性,但却可以实现代码复...
版权声明:本文为博主原创文章,未经博主允许不得转载。https://www.jianshu.com/p/399c01657920 本文同步发布在公众号Flutter那些事,欢...
新手菜鸟一枚,想从产品转入技术坑,目标:移动端APP开发。最近听技术达人 飞狐 说flutter beta发布了,支持跨平台APP开发,各种强大易上手,于是乎零基础入坑~话说...
属性是将值跟特定的类、结构体或者枚举关联。存储属性存储常量或者变量作为实例的一部分,用于类和结构体;计算属性是用来计算一个值,可以用在类、结构体和枚举。 存储属性和计算属性通...
code snippets的快捷生成和使用 code snippets的存放位置以及下次快速的导入 1.生成和使用
情景还原 今天无意间弄了一个警告. 警告就会存在着一定的隐藏风险,所以就一定要解决这种异常风险,接下来我们看一下当时的情景代码. 我首先写了一个名为BaseObject的基类...
前言 通过阅读别人的优秀源码,你会发现别人的开源API设计中,有一些宏你是经常忽略的,或者你不知道的。通过这些宏,可以让你的设计的API更加完善,当然看上去也会更加高端~举个...
attribute是GNU C特色之一,在iOS用的比较广泛.系统中有许多地方使用到. attribute可以设置函数属性(Function Attribute )、变量属性...
1. 简单阴影 我们给layer设置了shadowOpacity后就能得到一个简单的阴影 shadowOpacity设置了阴影的不透明度,取值范围在0~1这里shadow有一...
疑问? 在iOS中,经常需要用到线程的概念,尤其是类似UI绘制等操作,苹果也明确规定必须在主线程进行绘制,那么,我们如何来判断当前所在的线程呢?不同的判断方法又有何区别呢? ...
git-merge完全解析 Git的git-merge是在Git中频繁使用的一个命令,很多人都觉得git合并是一个非常麻烦的事情,一不小心就会遇到丢失代码的问题,从而对git...