Renchao's Blog

世上每个人都是驯兽师,而那匹猛兽,就是每人各自的性情。

runtime应用之crash防护机制

崩溃问题一直是影响产品质量和用户体验的重要因素,如何解决代码问题导致的崩溃?除了开发过程中更加细心和专业,还有什么解决方法呢。我们可以利用runtime来对崩溃进行防护,减少崩溃率,同时通过上报崩溃信息,来及时修复bug。 常见的崩溃类型 unrecognized selector KVO/KVC NSNotification NSTimer Container ...

阶段工作技术总结

阶段工作技术总结 年后来北京这段时间一直在家中办公,目前做的需求主要还是和服务器打交道,取到了数据还要解决与项目里之前的数据冲突,我一直想吐槽二次请求数据的需求,这完全可以让服务器去解决,我第一次拿到的数据就应该是最新的。现实所迫,还是初步提交了相关代码,也总结一下相关的小tip。 封装控件 封装了有项目风格的 底部弹窗选择器 和 日期选择器。 封装的中心。 封装一个控件很简单,但...

圆角总结

圆角 圆角问题已经说了好久,总是说系统方法切圆角会有性能方面的问题,但是看了那么多零碎的文章,今天决定总结一下设置圆角的方法。 方法 Layer的 cornerRadius + masksToBounds masksToBounds会触发离屏渲染,GPU会开辟一块新的渲染缓冲区来进行渲染,当圆角操作到达一定数量,会触发缓冲区的频繁合并和上下文频繁切换,性能上受...

2020会好吗

这个世界会好吗

这个世界会好吗? 勇敢的你 站在这里 脸庞清瘦却骄傲 在这远方 没人陪伴 只有幻想和烦恼 无聊的 渺小的 反对不公平的世界 没能继续的革命 不欢而散的告别 我倒下后 不敢回头 不能再见的朋友 有人堕落 有人疯了 有人随着风去了 我难过 2020年的开头好像一场梦,稀碎的不成样子。 心情随着...

常见的网络攻击

常见的网络攻击 互联网的发展让网络情况日渐复杂,收不到消息或者网速很慢,黑客使用一些手段可能就从中获益,到底是什么原因,是否有网络攻击的出现?这篇博客总结了目前网络上一些常见的攻击手段。 运输层 TCP SYN拒绝服务攻击 一般情况下,一个TCP连接的建立需要经过三次握手的过程,即: 发起者向服务器发送一个SYN报文,发起请求。 服务器收到请求后,会在内存中创建TCP连接...

前端小白对React Native的理解

Learn once, write anywhere

前端小白对React Native的理解 从2015年4月Facebook开源了跨平台移动应用开发框架React Native开始,用JS编写iOS和Android应用变得越来越流行。 Learn once, write anywhere.只使用前端语言就可以编写三个平台上的应用,提高了开发效率,同时即时更新的特点收到了更广泛的关注。 动态配置 使用原生开发iOS客户端的开发者都知道...

iOS网络请求优化

iOS网络请求优化 几乎所有的应用都会网络请求模块,AFNetworking的URL请求开发者无人不知。网络情况也愈发复杂,如何优化应用的网络模块变得尤其重要。接下来就结合大牛们的博客谈谈几点自己的见解。 DNS映射 所有网络请求的第一步都要找到域名对应的IP地址,DNS解析的效率直接决定了请求的延迟多少。而Cache的存在使得解析过程减少了很多延迟。但是缓存策略在不同系统上不一样,在...

AFNetWorking源码分析

AFNetworking源码分析 AFNetworking是iOS开发者不会不知道的网络库,可能没用过原生NSUrlSession,但一定用过AFN来请求。它简单好用的接口受到开发者的肯定,从github上马上30k的star就能看出来。那么为什么放着原生库不用,而都选择这个库?既然人尽皆知,作为iOSer却不知道内部实现就说不过去了,我们来分析分析源码(基于3.x)。 整体架构 ...

路由器和交换机

路由器和交换机 二层路由器和交换机 首先两者处于不同层,路由器在网络层,而二层交换机在数据链路层。 路由器主要做的,是不同网络之间的通信,一个网段的主机想要与另一个网段的主机通信,必须走路由器进行路由转发,交换机是支持两台在同一局域网进行通信的主机。 交换机不会共享网络带宽,路由器如果有多条网线相连,则共享主线的网络带宽。 交换机的转发决策是通过二层头部的mac地址,直接通过硬件芯...

TCP、UDP、IP报文格式

TCP、UDP、IP报文格式 整体构造: IPv4报文格式 版本:指IP协议的版本 首部长度:首部的长度 服务类型:如下图: 其中优先级用来区别优先级别不同的IP报文。 D表示要求有更低的时延。 T表示要求有更高的吞吐量。 R表示要求有更高的可靠性。 总长度:报文的长度。 标识:由于数据报长度超过传输网络的MTU(最大传输单元)而必须分片,这个标识字...