首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
波儿菜
掘友等级
客户端开发
|
Tencent
Github : https://github.com/indulgeIn
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
60
文章 49
沸点 11
赞
60
返回
|
搜索文章
最新
热门
NSURLSession 跨域重定向透传 HTTP Header 问题
背景 在源网页通过服务器重定向打开某个三方网页,网络层出现了 -1005 (NSURLErrorNetworkConnectionLost) 错误码,排查差异后发现是由于给这个三方服务带了源网页特有的
如何感知 WebKit 页面切换
背景 通常在 WKWebView 打开一个页面,收到页面数据时,代理方法可感知这个时机: 但若是改变页面 hash (也就是位置标识符"#") 打开另一页面时,这个代理方法不会调用,也没有合适的回调
WebKit 历史栈缓存策略探索
WebKit 历史栈缓存策略探索 1. WebKit 的常规历史栈缓存策略是怎样的? 2. WebKit 在跨域、重定向等场景下,历史栈缓存策略有怎样的变化?
MessageMock : 优雅的模拟 Objective-C 方法
我们在调试代码或编写单元测试时,为了触发特定场景,往往需要通过一系列前置操作,或者直接修改源代码数据。实际上更期望有一种不需侵入源码且更快捷的方式,知名的 OCMock 正是为了解决这些问题,不过它有不支持多线程、接口怪异、重复调用、类型处理复杂等问题,笔者看了源码过后决定换一…
OCMock 源码分析
单元测试作为日常工作中不可或缺的部分,虽然增加了需求开发的工作量,但能在一定程度上提高代码的稳定性。特别是迭代时通常能更快更准确的验证以往的算法或边界是否异常,避免手工测试时漏掉历史逻辑细节。 对于新增代码来说,保证可测试性能让单测能顺畅的编写,不过若我们需要为历史代码添加单测…
iOS 底层拾遗:autorelease 优化
听闻 ARC 下 autorelease 操作有一些优化,总感觉云里雾里的,笔者初略的探究了一番,记录下来变成这篇水文。 由于 ARC 下 retain/release/autorelease 的调用都是编译器代劳,所以需要使用编译后的代码进行分析,通常笔者选择 Xcode 自…
一文领略链接与装载
链接与装载是一个比较晦涩的话题,大家往往容易陷入复杂的细节中而难以看清问题的本来面目。从本质上讲各个系统的编译、链接、装载过程都是大同小异的,或许可以用一种更抽象的形式来理解这些过程,梳理清楚宏观的来龙去脉有利于对特定系统进行深入学习。 本文主要根据《程序员的自我修养 —— 链…
弱符号实现 iOS 组件化解耦
今天在重温《程序员的自我修养》中关于符号表的章节时,突然脑子灵光一现,想到了这个知识的一个应用场景,所以便有了这篇文章。 若对 iOS 组件化不太了解,可以看笔者的另一篇文章:解读 iOS 组件化与路由的本质,本文主要是谈一下如何利用弱符号来实现 iOS 组件化解耦。 函数和全…
iOS 底层拾遗:objc_msgSend 与方法缓存
行文过程中会涉及到一些汇编代码,不过不影响理解核心逻辑。 源码基于 Runtime 750,arm64 架构。 注意: arm64 汇编代码会出现很多p字母,实际上是一个宏,64 位下是x,32 位下是w,p就是寄存器。 $0获取宏的第一个参数,调用时传的p13,即是isa。这…
iOS 底层拾遗:AutoreleasePool
在阳神的 黑幕背后的Autorelease 文章中已经把 AutoreleasePool 核心逻辑讲明白了,不过多是结论性的东西,笔者通读源码以探究更多的细节,验证一下老生常谈的一些结论。 源码基于 Runtime 750。 可以猜测 push 和 pop 操作是实现自动释放的…
下一页
个人成就
文章被点赞
496
文章被阅读
107,534
掘力值
3,146
关注了
12
关注者
3,208
收藏集
1
关注标签
3
加入于
2018-03-17