NSString、NSMutableString 可变与不可变的那些事儿

简介这篇文章的主要包含如下内容: 可变对象和不可变对象 NSString 的 copy 和 mutableCopy NSMutableString 的 copy 和 mutableCopy property 中 copy、strong 修饰 NSString property 中 copy、strong 修饰 NSMutableString 很多 iOS 开发的朋友会争论一个问题,我用 ...

发布于 iOS

OC: self

为了更好的说明 Objective-C 中的 self,我们先从 Java 的 this 关键字开始来引入话题。 Java 中的 this在 Java 中 this 关键字表示当前类对象,其只能在类的非静态方法中使用,静态方法和静态的代码块中绝对不能出现 this,this 只和特定的对象关联,而不和类关联,同一个类的不同对象有不同的 this. 先看一个 Java 示例,能说明上面的问题,...

发布于 iOS

Wireshark: 分析 TCP 四次挥手

简介首先要明白 TCP 协议是一种面向连接的、可靠的、基于字节流的传输层通信协议。 其次,TCP 是全双工模式,需要两边的连接全部关闭,此 TCP 会话才算完全关闭,四次挥手使得 TCP 的全双工连接能够可靠的终止。 TCP 的连接的拆除需要发送四个包,因此称为四次挥手(Four-way handshake),也叫做改进的三次握手。客户端或服务器均可主动发起挥手动作,在 socket 编程中...

发布于 网络协议

当 NTFS 遇上 MacOS

简介自己使用的 MacBook Pro 电脑是 256G 的,这个本陪了我5个春秋,性能依旧强劲,一直舍不得抛弃换新(好吧,我承认自己穷)。 由于工作需要,里面安装了不少软件,也存储了不少资料,逐渐发现硬盘容量不足,我也一直在删除一些非必要的东西,发现还是杯水车薪,没办法,又买了一块移动硬盘,网盘用起来还是没有硬盘方便,我使用网盘的频率很低。 MacOS 挂载我觉得移动硬盘买回来,直接插在电...

发布于 MacOS

观察者模式

组件间通信,我会优先使用路由的通信方式(iOS中需要用到 runtime,Android 中需要用到反射和注解),组件之间按照路由协议(类似 url)实现各自的职责即可,组件间的松耦合性增强了软件设计的弹性和高可用性。 路由结合观察者模式,可以让你的组件设计更上一层楼。路由可以解决单向调用的问题,让组件之间无需知道对方是否存在。观察者模式可以让调用者(使用你框架的)可以很方便的知道组件的内部...

发布于 Philosophy

macOS 中神秘的 GCC

最近在看人工智能相关的知识,无意中发现了一个巨牛的 人工智能教程,分享一下给大家。 教程不仅是零基础,通俗易懂,而且非常风趣幽默,像看小说一样!觉得太牛了,所以分享给大家。点 这里 可以直接看教程。 这个事情,要从编译一个简单的代码开始说起。 gcc 和 g++ 的区别gcc 是 GCC 中的 GUN C Compiler,C 编译器。 g++ 是 GCC 中的 GUN C++ Compi...

发布于 C/C++

SVN 检出文件

需求对于一些大工程, 整个 svn 仓库文件过大(动辄几十个G的都有),不想把整个 checkout 下来,但是又想维持整个目录结构以方便后续使用,那么可以使用 Subversion1.5 之后的 --depth 参数来只 checkout 需要的子目录. 如果只想把 svn 仓库里面某个文件 checkout 到本地, 不想 checkout 整个目录, 如何操作呢? 实施假设需要 che...

发布于 Tools

Cocoapods: 私有仓库

使用场景在我之前的博客中分享了几篇关于 Cocoapods 的文章(文末有链接),今天分享另外一个主题即如何创建你自己的私有仓库以及如何使用私有仓库。 为什么会有这种需求呢? 开发组内或者公司内,不希望把一些核心的公用代码给到外界使用(不开源),但是这些代码基本很稳定很成熟,可以做成组件给到其他人或者组内使用。 那么,就可以使用 Cocoapods 来创建自己的私有仓库,让大家共享代码,也是...

发布于 MacOS

浅谈客户端模块化

回忆大学那会喜欢跟着老师在实验室折腾,感觉每天大脑中都有新知识鱼贯而入。 当我被告知要做一个最小单片机系统的时候,兴奋而又紧张! 最小单片机系统示意图: 从画 PCB 到制板、洗板,再到选择元器件,最后组装调试和写代码,我花费了两个多月的时间,当板子上面的跑马灯亮起来的那一刻,我激动的无法言语。 大家可以看到这个最小单片机系统上面有很多组件组成,有电阻、电容、电阻、二极管和卡槽等,当然还有最...

发布于 Philosophy

HTTP 演进史

精通 HTTP 吗?在面试相关开发岗位的同学中,我经常会问一些跟编程语言不相关的东西,比如下面这些问题: 1. 你平时是怎么学习的?学习渠道有哪些?2. 项目组中,你认为最重要的是什么?3. 你在项目组中遇到的最大困难(非编程问题)是什么,你是怎么解决的?4. 项目执行过程中,其他同事遇到困难,你是如何做的? 这些问题可以让面试者自由发挥的题目,并没有固定的标准的答案。这样的问题问出来有诸多...

发布于 网络协议
1120

本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。

veryitman