在arm64架构之前,isa就是一个普通的指针,存储着Class、Meta-Class对象的内存地址。从arm64架构开始,对isa进行了优化,变成了一个共用体(union)...
在arm64架构之前,isa就是一个普通的指针,存储着Class、Meta-Class对象的内存地址。从arm64架构开始,对isa进行了优化,变成了一个共用体(union)...
第一种方案:把该manager封装成单例 解决理由:内存中的某一块固定的地址就用来存放manager,专门用来网络请求和释放。 方案代码: 问题:很明显,同一时刻只能有一个网...
一、证书安装 1、安装证书,Help -> SSL Proxying -> Install Charles Root Certificate 2、找到Keychain Acc...
Jenkins iOS 打包步骤 1.前言 整体思路: 1.在打包机弄一个工程,手动让它打包成功一次(此步骤含iOS证书配置等工作) 2.配置fastlane脚本,让他成功打...
需求: 最近重构项目代码尝试用 UIAlertController 实现富文本呈现及跳转事件,过程是曲折的,但结果是完美的。 Screenshot: 核心源码: github...
UI在APP设计切图的时候,总是会遇到开发要求切.9图,可是什么是.9图,.0图用来干什么,什么时候该切.9图以及.9图该怎么切呢?让我们一起来看看吧。 · 什么是.9图? ...
在平时项目中,我们经常会碰到类似UIScrollView嵌套UITableView的需求,虽然苹果并不建议这种做法,但是这样的需求在平时工作中还是很常见的。比如笔者公司项目之...
一、先下载工具Charles 下载地址[http://www.pc6.com/mac/137987.html] 二、基本配置环境:系统:macOS 10.15.7抓包软件:C...
1. Swift cocoapods管理第三方库 'XXX.h' file not found 方法一: 在头文件的前面加上目录,如: 方法二:修改工程配置 2. Xcode...
OC面试题目合集地址[https://www.jianshu.com/p/4c09bbf369f4] 问题1: load 和 initialize 区别是什么? 官方:运行时...
响应链大概有以下几个步骤 设备将touch到的UITouch和UIEvent对象打包, 放到当前活动的Application的事件队列中 单例的UIApplication会从...
前言 UI给的图有时候很小,或者有个需求需要我们扩大button的点击区域 我们一般的操作是在button 上添加一个view 增加点击事件,但是我们还有其他更方便的方法去扩...
atomic原子性,是property的关键字之一,会对属性的get,set操作加锁,保证读写的安全 例子🌰: 上面代码运行会crash:Thread 9: EXC_BAD_...
关于程序是否是从 main 函数开始运行的疑问,可以参照 运行库[https://www.jianshu.com/p/32ae54cc8978] 中的讲解。对于了解之后的内容...
引言 本文主要探索dyld的加载流程,了解应用程序在main函数之前都做了什么准备工作,了解dyld是什么,我们所编写的代码、framework等是如何加载到内存里变活起来的...
引言 在我们编写OC代码的时候经常可以看到这样的警告 一个是方法被废弃了,一个是我们输入的参数不合理。我们知道 编译时异常,要比运行时异常好的多。那么编译器是如何知道这写内容...
本文首发于我的个人博客:「程序员充电站」[https://itcharge.cn]文章链接:「传送门」[https://itcharge.cn/ios-runtime-01/...
被问到一个问题:假如你做SDK给外部使用,怎样保证提供的函数不被外部hook?我们知道,iOS中的hook基本原理有两个: 所以,我们可以利用OC的Method Swizzl...
1、介绍 Symbolic Breakpoint为符号断点,可以针对某一个方法(函数)设置断点并暂停执行;有时候,我们并不清楚会在什么情况下调用某一个函数,那我们可以通过符号...
在 Objective-C 中延迟执行还是很常见的需求,通常有如下几种方式可供选择: performSelector: 想要延迟调用某个方法: 取消延迟的方法: 这里需要注意...