14k 13 分钟

# 背景

作为一个开发者不能没有博客,最近花了几天的时间搭建了这个博客,处理了很多细节,在这篇文章中我会把我从开始到现在以及后续的优化整理出来,帮助更多的人搭建、维护、更新、自己的博客。

一开始我所有的博客都写在新浪微博,因为微博上更容易推广自己的文章,微博用户量大,但是后来微博的弊端慢慢的显示出来了,毕竟不是开发者的天地,我的博客中经常会插入大量的代码,而微博不支持 markdown 编辑,普通的编辑器对代码块的兼容性非常差,别说高亮了,有时候排版都会错乱,最后外观很不好看,如下图:

14k 12 分钟

# 科普片

# 1、DNS 劫持的危害

不知道大家有没有发现这样一个现象,在打开一些网页的时候会弹出一些与所浏览网页不相关的内容比如这样奇 (se) 怪 (qing) 的东西

图一

或者这样

2.9k 3 分钟

我们在开发 iOS 程序的时候,往往都会根据需要导入很多的第三方框架,但是不同的框架完成的功能不同,所以导入的方式也不同,并不是把它直接拖进工程中就完事了,我们需要配置各种环境,链接各种库文件等等。有的时候我们并不能一个不漏的完成导入,而一旦出了问题,尤其是那些需要框架比较多的工程 (比如早期的百度地图框架),将很难解决,而且,如果遇到了第三方库升级,更新了方法那么我们还需要把之前的旧版本删掉,再重复一下前面的工作,这将是非常的繁琐,极大地影响了开发的效率。这个时候我们就需要用到 cocoapods 来管理我们的第三方了,在我们有了 CocoaPods 这个工具之后,只需要将用到的第三方开源库放到一个名为 Podfile 的文件中,

264 1 分钟

# CustomAlertView

一个自定义的 AlertView,用户可以根据自己的需求来设置。

# 使用方法

初始化方法

类似于系统的初始化方法,如果没有值的话就传 nil 就好,不要传空字符串。最后一个参数传 title 数组就好了。

使用

然后调用 showInViewWithAction 方法显示出来

4.1k 4 分钟

之前写过一篇文章是关于基于 NSURLProtocol 做的 DNS 解析,其中对 NSURLProtocol 也有了简单的介绍,我们都知道他可以拦截所有基于 URL Loading System 中的请求,但是对于 WKWebview 里面所发出的请求即使他是 http/https 也无能为力,先来简单的了解下 WKWebView.

9.1k 8 分钟

# Runtime 介绍:

runtime 顾名思义就是运行时,其实我们的 App 从你按下 command+R 开始一直到 App 运行起来经历了大致两个阶段,1:编译时,2:运行时。还记得一道很经典的面试题

这里给大家解释下:首先, * testObject 是告诉编译器,testObject 是一个指向某个 Objective-C 对象的指针。因为不管指向的是什么类型的对象,

3.6k 3 分钟

# 产生的背景

在移动设备上内存是一块公用的区域,如果一个 App 没有做好内存管理那么一定会导致性能急剧下降甚至会崩溃。
Facebook 的 iOS 端有许多的地方都共享着一块内存,如果任何一个地方占用太多的内存的话就会影响到整个 App,比如一个地发生了内存泄漏,就会出现这种情况。我们把一组内存分配我们的一个对象,但是当我们使用完之后忘记释放他,这就通常就会引起内存泄漏,这就意味着系统永远不能回收这块内存也就导致这块内存一直不能分配给别的对象。在 Facebook 里我们有许多许多的工程师在代码的不同部分工作,内存泄漏时不可避免的,当一旦有内存泄漏发生我们就需要立即找到并且修复。虽然现在有好多检测内存泄漏的工具但是这些工具并不完善,他们仍然需要开发者去做一些工作:

4.7k 4 分钟

觉得作者写的很好就转载下,原文链接:http://www.yinwang.org/blog-cn/2017/07/06/master-pl

对的,我这里要讲的不是如何掌握一种程序语言,而是所有的……
很多编程初学者至今还在给我写信请教,问我该学习什么程序语言,怎么学习。由于我知道标题问题的答案,所以总感觉这个问题是如此 “低级”,一直没来得及回复 😛 可是逐渐的,我发现原来不只是小白们有这个问题,就连美国大公司的很多资深工程师,其实也没搞明白。
今天休闲活动进入第二个星期,稍微闲下来一点,我想来统一回答一下这个搁置已久的 “初级问题”。这个话题貌似曾经写过,然而现在我想把它重新写一遍。因为通过跟很多人的交流,我对自己头脑中的(未转化为语言的)想法,有了更精确的表达。
如果你存在以下的种种困惑,那么这篇文章也许会对你有所帮助:
你是编程初学者,不知道该选择什么程序语言来入门。
你是资深的程序员或者团队领导,对新出现的种种语言感到困惑,不知道该 “投资” 于那种语言。
你的团队为使用哪种程序语言争论不休,发生各种宗教斗争。
你追逐潮流采用了某种时髦的语言,结果两个月之后发现深陷泥潭,痛苦不堪……

1.5k 1 分钟

# 背景

项目中遇到一个问题,需要引入两个 SDK,我们暂且命名为 A 和 B,由于业务需要这两个 SDK 都需要对一个系统函数 C 进行 hook, 但是有一个前提,由于 B 所做的是一个统计相关的 SDK,所以 B 要监控 App 内的所有代码这其中也包括了 SDK A 所做的一些操作,所以我们必须确保 B 在 hook C 函数时候 A 已经对 C 函数 hook 完毕,其实这就涉及到 hook 顺序的问题。