各种顺序链、时间链
文章平均质量分 84
想名真难
这个作者很懒,什么都没留下…
展开
-
iOS 适配SceneDelegate的坑: scheme 和 Universal Link 在调试时的踩坑记录
在你使用SceneDelegate的时候不管你是scheme还是Universal Link 都会在冷启动的时候不走代理函数。解决办法有两种:1.你可以不用SceneDelegate这个文件。这样就可以避免问题的出现。毕竟现在的APP好像并没有强制开发者只用SceneDelegate;2.在无数次的测试的时候我们会发现在APP冷启动的时候都会走SceneDelegate的我们可以对这个函数做做文章。在中有两个属性,一个是另一个是。转载 2023-09-16 19:24:59 · 892 阅读 · 0 评论 -
墓碑机制与生命周期
应用程序的状态iOS 应用程序一共有 5 种状态: Not running:应用未运行 Inactive:应用运行在 foreground 但没有接收事件 Active:应用运行在 foreground 且正在接收事件 Background:运行在 background 且正在执行代码, 后台播放音乐,地图定位,VoIP语音通话 Suspended:运行在 background 但没有执行代码 墓碑机制墓碑机制(Tombstone)也就是常说的「伪多转载 2021-09-20 11:36:24 · 7615 阅读 · 0 评论 -
iOS事件处理,手势和UIResponder
UIResponderUIResponder是iOS中用于处理用户事件的API,可以处理触摸事件、按压事件(3D touch)、远程控制事件、硬件运动事件。可以通过touchesBegan、pressesBegan、motionBegan、remoteControlReceivedWithEvent等方法,获取到对应的回调消息。UIResponder不只用来接收事件,还可以处理和传递对应的事件,如果当前响应者不能处理,则转发给其他合适的响应者处理。应用程序通过响应者来接收和处理事件,响应者可以是继承转载 2020-12-20 21:09:26 · 568 阅读 · 0 评论 -
iOS触摸屏幕后发生了什么?触摸事件全家桶
好奇触摸事件是如何从屏幕转移到APP内的?困惑于Cell怎么突然不能点击了?纠结于如何实现这个奇葩响应需求?亦或是已经被响应链、手势、target-action这一系列响应触摸事件的方式折腾到不会打Hello World?现在 是时候带你上分了~ (强行YY完毕)本文主要讲解iOS触摸事件的一系列机制,涉及的问题大致包括:触摸事件由触屏生成后如何传递到当前应用? 应用接收触摸事件后如何寻找最佳响应者?实现原理? 触摸事件如何沿着响应链流动? 响应链、手势识别器、UIControl之.转载 2020-09-22 10:32:51 · 1008 阅读 · 0 评论 -
基于响应链的ResponderChain的交互方式
前言传统iOS的对象间交互模式就那么几种:直接property传值、delegate、KVO、block、protocol、多态、Target-Action。但是有一天我在跟同事小龙结对编程的时候,他向我介绍了一个全新的交互方式:基于ResponderChain来实现对象间交互。这种方式通过在UIResponder上挂一个category,使得事件和参数可以沿着responder chain逐步传递。这相当于借用responder chain实现了一个自己的事件传递链。这在事件需要层层传递的时候转载 2020-05-14 13:51:21 · 194 阅读 · 0 评论 -
完整的HMAC加密过程
在用户端进行请求的时候,如果要上传一些敏感数据,比如用户的密码,身份证号,银行卡信息时一般是需要进行加密,以用户的登录密码为例,说下HMAC加密的过程. 先说原理 : 通过哈希算法,我们可以验证一段数据是否有效,方法就是对比该数据的哈希值。md5是应用非常广泛的哈希算法.其他的还有SHA-1,SHA-256,等等都行. 从注册开始 1....原创 2019-08-19 11:04:34 · 4129 阅读 · 1 评论 -
runtime消息处理原理 -- (三)
方法调用的本质本文我们探寻方法调用的本质,首先通过一段代码,将方法调用代码转为c++代码查看方法调用的本质是什么样的。xcrun -sdk iphoneos clang -arch arm64 -rewrite-objc main.m[person test];// --------- c++底层代码((void (*)(id, SEL))(void *)objc_msgSend)...转载 2019-01-30 17:47:07 · 237 阅读 · 0 评论 -
OC对象的一生
前言在面向对象编程中,我们每天都在创建对象,用对象描述着整个世界,然而对象是如何从孕育到销毁的呢?目录1.孕育对象 2.对象的出生 3.对象的成长 4.对象的销毁 5.总结一.孕育对象每天开发我们都在alloc对象,而alloc方法做了些什么呢?+ (id)alloc { return _objc_rootAlloc(self);}所有对象all...转载 2019-01-31 14:33:00 · 735 阅读 · 0 评论 -
用反射机制做组件化路由
看了很多网上的组件化路由 , 不太理解为什么这么做 , 仿照他们的接口和调用 , 自己做了一个 , 先说下需要解决什么问题 .在一个比较复杂的类中 , 常常某个ViewController会引入大量的其他ViewController,例如:FirstViewController会引入SecondViewController、ThirdViewController ,FourViewContr...原创 2019-01-15 15:01:23 · 305 阅读 · 0 评论 -
iOS 程序 main 函数之前发生了什么
一个 iOS App 的main函数位于 main.m 中,这是我们熟知的程序入口。但对 objc 了解更多之后发现,程序在进入我们的 main 函数前已经执行了很多代码,比如熟知的+ load方法等。本文将刨根问底,从dyld到runtime,看看 main 函数之前都发生了什么。从dyld开始动态链接库iOS 中用到的所有系统 framework 都是动态链接的,类...转载 2018-12-28 14:11:25 · 349 阅读 · 0 评论 -
iOS 10 消息推送
原文 : https://www.jianshu.com/p/c58f8322a278另一篇文章 : https://www.jianshu.com/p/f5337e8f336d背景iOS10 新特性一出,各个大神就早已研究新特性能给场景智能化所带来的好处(唉,可惜我只是一个小白)。我也被安排适配iOS10的推送工作!Apple 表示这是 iOS 有史以来最大的升级(our biggest rel...转载 2018-03-29 17:12:39 · 1219 阅读 · 0 评论 -
三次握手与四次挥手
TCP/IP协议三次握手与四次握手流程解析一、TCP报文格式 TCP/IP协议的详细信息参看《TCP/IP协议详解》三卷本。下面是TCP报文格式图:图1 TCP报文格式 上图中有几个字段需要重点介绍下: (1)序号:Seq序号,占32位,用来标识从TCP源端向目的端发送的字节流,发起方发送数据时对此进行标记。 (2)确认序号:Ack序号,占32位,只有原创 2016-03-12 10:18:24 · 332 阅读 · 0 评论 -
OC load 和 initialize 方法
OC中有两个特殊的类方法,分别是load和initialize。先来看看NSObject Class Reference里对这两个方法说明:+(void)loadTheloadmessage is sent to classes and categories that are both dynamically loaded and statically linked, but o...原创 2016-12-02 11:33:40 · 541 阅读 · 0 评论 -
iOS中事件响应链和传递链
运用的前提是掌握 掌握的本质是理解本篇内容将围绕iOS中事件及其传递机制进行学习和分析。在iOS中,事件分为三类:触控事件(单点、多点触控以及各种手势操作) 传感器事件(重力、加速度传感器等) 远程控制事件(远程遥控iOS设备多媒体播放等)这三类事件共同构成了iOS设备丰富的操作方式和使用体验,本次就首先来针对第一类事件:触控事件,进行学习和分析。Gesture Recogniz...转载 2016-03-12 10:21:30 · 390 阅读 · 0 评论 -
实现点击穿透、执行下层视图的点击事件
一.hitTest:withEvent:调用过程 iOS系统检测到手指触摸(Touch)操作时会将其放入当前活动Application的事件队列,UIApplication会从事件队列中取出触摸事件并传递给key window(当前接收用户事件的窗口)处理,window对象首先会使用hitTest:withEvent:方法寻找此次Touch操作初始点所在的视图(View),即需要将触摸事...转载 2016-05-19 11:55:43 · 11040 阅读 · 0 评论 -
CPU的工作原理
一直以来,总以为CPU内部真是如当年学习《计算机组成原理》时书上所介绍的那样,是各种逻辑门器件的组合。当看到纳米技术时就想,真的可以把那些器件做的那么小么?直到看了Intel CPU制作流程及AMD芯片的制作流程的介绍不禁感慨,原来科技是如此的发达。本文我们以Intel为例对CPU的工作原理做简单介绍,仅仅是简单介绍,那么AMD,ARM,MIPS甚至PowerPC你应该会触类旁通才对。还记转载 2016-07-26 16:45:42 · 377 阅读 · 0 评论 -
viewcontroller生命周期
一、结构按结构可以对iOS的所有ViewController分成两类:1、主要用于展示内容的ViewController,这种ViewController主要用于为用户展示内容,并与用户交互,如UITableViewController,UIViewController。2、用于控制和显示其他ViewController的ViewController。这种ViewController一般都...原创 2016-03-12 10:26:35 · 321 阅读 · 0 评论 -
app生命周期
对于iOS应用程序,关键的是要知道你的应用程序是否正在前台或后台运行。由于系统资源在iOS 设备上较为有限,一个应用程序必须在后台与前台有不同的行为。操作系统也会限制你的应用程序在后台的运行,以提高电池寿命,并提高用户与前台应用程序的体 验。当应用程序在前台和后台之间切换时,操作系统将会通知您的应用程序。你可以通过这些通知来修改你的应用程序的行为。当你的应用程序在前台活动时,系统会发送触摸转载 2016-03-12 10:27:39 · 465 阅读 · 0 评论