Charles学习总结

Charles是一个代理服务器,这意味着它位于你的应用程序和计算机的网络连接之间。当查尔斯自动配置您的网络设置时,它改变了您的网络配置以路由所有通过它的流量。这允许查尔斯检查计算机上的所有网络事件。
代理服务器处于强大的地位,但这也意味着滥用的可能性。这就是为什么SSL如此重要:数据加密防止代理服务器和其他中间件窃听敏感信息。
Charles还可以生成自己的自签名证书,您可以在MaciOS设备上安装SSL / TLS加密。由于此证书不是由受信任的证书颁发者颁发的,所以您需要告诉您的设备显式地信任它。一旦安装并受信任,查尔斯将能够解密SSL事件!

阅读更多
iOS 避免循环引用【译】

今天看文章发现一片关于Retain Cycle的老生常谈的问题,但是作者从开发常见场景的代理和Block分析了原因,分析的不错,加深了理解,索性小译一下,加上了一些自己的注解。欢迎转载评论,注明原文地址即可~

Avoid Strong Reference Cycles

随着ARC的引入,内存管理变得更容易了。然而,即使您不必担心何时保留和释放,但仍然有一些规则需要您知道,以避免内存问题。在这篇文章中,我们将讨论强引用循环。

什么是一个强引用循环?假设你有两个对象,对象A和对象B。如果对象A于对象B持有强引用,对象B于对象A有强引用,那么就形成了一个强引用循环。我们将讨论两种非常常见,需要注意循环引用的场景:Block和Delegate。

1
2
A->B: strong reference
B->A: strong reference
阅读更多
4点起床

4点起床

就因为没时间,才什么都能办到

只要妳想要,就能夠做得到!
放弃完美主义,要有乱成一团的心理准备。把“非要完美地完成”,改成“做一点是一点”,一切就有新突破。不做,收获是零,做一点就有一点的收获。
花钱买时间。做“自己不能被替代的事”,其他的事情可以交给别人外包。
别让焦虑消灭斗志。控制情绪就是节约时间。斗志就想气球,一旦因为疲惫、失落泄了气,又得花时间鼓起它,如此反复,会浪费大量时间。
勇敢踏出第一步,然后呢,见机行事。无论第一步有多小,都要踏出去,然后,坚持下来。吉田穗波说的坚持并不是日复一日,而是中途停下来很正常,即使没完成进度还要继续前进。
不是因为某件事很难,你才不想做,而是因为你不想做,让这件事变得很难。

阅读更多
Xcode Debugging

变更记录

序号 | 录入时间 | 备注
— | — | — | —
1 | 2017-06-03 | 新建文章
2 | 2018-02-28 | 更新引言
2 | 2018-04-14 | 整理格式

引言

你的代码,或者任何人的代码中总会有bug存在,你可以把调试看做是更好地理解代码的一种方式 —— By Advanced_Apple_Debugging_&_Reverse_Engineering_v0.9.5

The Debugging Process

  1. Reproduce the problem

    if you cannot reproduce the problem, then you (probably) do not understand it.

  2. Gather Debug Information

    Logs, program, state,…
    What is the value of a variable?
    What kind of error?(ex.EXC_BAD_ACCESS)
    What line of code caused the error?
    Which functions or methods led to the error?

  3. Form a Hypothesis

  4. Try a fix

    Maximize the information gained per fix!

阅读更多
如何阅读一本书

读书方法

不会读书 会读书
选书
购书
【对书没有形成意识】
别人推荐什么读什么
没有目的性的读书
被广告和销量排行榜左右
【搜集信息制作购书清单,按清单购买书】
发现并按照自己的需求选书
读书目的很明确
能排除干扰而不是被动选书
有效利用各种信息定制自己需要的书单
读书 【随意读读】
读书没有重点,需要很长时间
读书过程容易变得单调范围
读过以后很难提炼要点
【以记录读书笔记和创造价值的概念读书】
目的明确,速度更快
读的过程做记号,读完做笔记,印象深刻
读完后能够迅速提炼要点
记录 【仅仅是读过】
没有记录回顾
不记得曾经读过
无法回忆内容
【拥有扎实有价值的个人笔记】
提炼书中要点
记录个人感受
对书中价值点印象深刻
以书为媒介丰富思想
活用 【书在书架上】
难以进行参考
书被遗忘在角落
浪费了时间、空间、金钱
【回顾读书笔记】
便于参考
可以脱离原书
通过读书笔记吸取知识便于实践和提升

康奈尔笔记法

阅读更多
UML类图与类的关系详解

在画类图的时候,理清类和类之间的关系是重点。类的关系有泛化(Generalization)、实现(Realization)、依赖(Dependency)和关联(Association)。其中关联又分为一般关联关系和聚合关系(Aggregation),合成关系(Composition)。下面我们结合实例理解这些关系。

UML工具选择

之前有收集一个导图工具processon,感觉做导图不错,还有社区分享,但是不适合做类的UML图吧,参考了
UML相关工具一览(截止2017年3月),Astah有哪些值得推荐的 Mac 下的 UML 工具?,感觉 Astah 网站教程不错,工具演示视频一下让我心动了,我觉得我找的就是这种工具。

阅读更多
建站日志

博客-建站日志

变更记录

序号 | 录入时间 | 备注
— | — | — | —
1 | 2017-05-03 | 新建文章
2 | 2018-02-28 | 整理博客问题,添加问题8
3 | 2019-01-26 | 更换博客图床,add HTTPS认证
4 | 2019-01-27 | 更换DNS解析到Cloudflare
5 | 2019-07-20 | 恢复本地搜索

TODO

  • 整理,优化文章level2

  • 文章底部添加推荐和最新评论

  • 推广-SEO优化

  • CDN解析加速

  • 添加文章版权

阅读更多
Linux命令学习

Linux命令学习

时间 备注
2017-05-01 start
2018-04-30 添加文件重命名
2018-06-20 整理 & 添加补充grep命令
2018-07-05 整理 & 添加powerline

记录小白学习Linux的过程。

zsh配合iterm2效果.png

常用命令

man命令

常用工具命令 man命令是Linux下的帮助指令,通过man指令可以查看Linux中的指令帮助、配置文件帮助和编程帮助等信息。
语法 man(选项)(参数)
-a:在所有的man帮助手册中搜索;
-f:等价于whatis指令,显示给定关键字的简短描述信息;
-P:指定内容时使用分页程序;
-M:指定man手册搜索的路径。
来自: man命令_Linux man 命令用法详解

  • 不区分大小写智能提示。我是不喜欢大小写区分的那种人,所以用了 zsh 之后,经常按 Tab 进行提示。
    此外按下 tab 键显示出所有待选项后,再按一次 tab 键,即进入选择模式,进入选择模式后,按 tab 切向下一个选项,按 shift + tab 键切向上一个选项,ctrl+f/b/n/p 可以向前后左右切换。
阅读更多
关注眼睛健康——《养眼就是养精神》读书笔记

今野式视力恢复训练法

近视是无法忽视的眼科第一疾病

90%以上的近视与遗传五官

上海现代人眼睛的罪魁祸首: 蓝光

行动!把锻炼拓展到眼睛


TableView系列--优化

优化UITabelView

内建方法

  1. 首先是重用cell/header/footer的单个实例,即便是我们需要显示多个。这是优化UIScrollView(UITableView的父类)最明显的方式,UIScrollView是由苹果的工程师提供的。为了正确的使用它,你应该只有cell/header/footer类,一次性初始化它们,并返回给UITableView。

但重要的事情是:在UITableView的dataSource中实现的tableView:cellForRowAtIndexPath:方法,需要为每个cell调用一次,它应该快速执行。所以你需要尽可能快地返回重用cell实例。

不要在这里去执行数据绑定,因为目前在屏幕上还没有cell。为了执行数据绑定,可以在UITableView的delegate方法tableView:willDisplayCell:forRowAtIndexPath:中进行。这个方法在显示cell之前会被调用。

但是UITableView的问题在哪?正如所解释的一样,UITableView不会同时维护所有cell的实例。相反,它只需要维护显示给用户的那些cell。

那么,UITableView是如何知道它的contentSize呢?它是通过计算所以cell的高度之和来计算contentSize的值。

UITableView的delegate方法tableView:heightForRowAtIndexPath:会为每个cell调用一次,所以你应该非常快地返回高度值。

很多人会犯一个错误,他们会在布局初始化cell实例并绑定数据后去获取它们的高度。如果你想优化滑动的性能,就不应该以这种方式来计算cell的高度,因为这事难以置信的低效,iOS设备标准的60 FPS将会降低到15-20 FPS,滑动会变得很慢。

阅读更多