学计算机的那个

不是我觉到、悟到,你给不了我,给了也拿不住;只有我觉到、悟到,才有可能做到,能做到的才是我的.

0%

传输层协议

  • TCP, 传输控制协议
  • UDP,用户数据报协议 无连接,尽最大努力交付

TCP

  • TCP 提供一种面向连接的、可靠的字节流服务
  • 在一个 TCP 连接中,仅有两方进行彼此通信。广播和多播不能用于 TCP
  • TCP 使用校验和,确认和重传机制来保证可靠传输
  • TCP 给数据分节进行排序,并使用累积确认保证数据的顺序不变和非重复
  • TCP 使用滑动窗口机制来实现流量控制,通过动态改变窗口的大小进行拥塞控制
1
2
3
注意:TCP 并不能保证数据一定会被对方接收到,因为这是不可能的。TCP 能够做到的是,如果有可能,就把数据递
送到接收方,否则就(通过放弃重传并且中断连接这一手段)通知用户。因此准确说 TCP 也不是 100% 可靠的协议,
它所能提供的是数据的可靠递送或故障的可靠通知。
阅读全文 »

HTTP协议

在HTTP建立之初,主要就是为了将超文本标记语言(HTML)文档从Web服务器传送到客户端的浏览器。

HTTP是超文本传输协议。它是应用层协议的一种,请求/响应报文的组成结构

报文格式

请求报文的格式

1
2
3
GET / HTTP/1.1
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5)
Accept: */*
  • 三个部分
1
2
3
请求行
请求头,都是以 key-value形式组成
实体主体 , GET 请求一般不带有实体主体
阅读全文 »

消息发送(Messaging)是 Runtime 通过 selector 快速查找 IMP 的过程,有了函数指针就可以执行对应的方法实现;

消息转发(Message Forwarding)是在查找 IMP 失败后执行一系列转发流程的慢速通道,如果不作转发处理,则会打日志和抛出异常

阅读全文 »

大体上原理,就是通过创建不同优先级的context(5个),context中创建有限数量的queue(CPU核数)。
在使用的时候,通过优先级获取不同的context,然后轮着返回不同的queue让你换着用,你就可以一定程度上实现并行队列,并且控制线程数量。

阅读全文 »

拓展 VS 分类

一般用扩展做什么?

  • 声明私有属性
  • 声明私有方法
  • 声明私有成员变量

扩展的特点 (和分类的区别)

  • 编译时决议
  • 只以声明的形式存在,多数情况下寄生于宿主类的.m中
  • 不能为系统类添加扩展
阅读全文 »

问题

一个类的分类重写了这个类的方法后,那么这个类的这个方法将失效,那么原方法失效,分类方法生效的原因是什么?

阅读全文 »

艾德的父亲给所有逍遥法外的罪犯起了一个统一的代称-罗罗·汤马西.——–<洛城机密>

这篇博客总结一些,iOS开发中遇到的,比较特殊的问题,或者暂时想不到解决办法的问题。有些问题是个人能力不足,暂时没找到解决方案,有些可能就是苹果系统本身的问题。

阅读全文 »

layout

layoutSubviews在以下情况下回被调用

1
2
3
4
5
6
7
8
9
10
11
12
1、init初始化不会触发layoutSubviews
但是是用initWithFrame 进行初始化时,当rect的值不为CGRectZero时,也会触发

2、addSubview会触发layoutSubviews

3、设置view的Frame会触发layoutSubviews,当然前提是frame的值设置前后发生了变化

4、滚动一个UIScrollView会触发layoutSubviews

5、旋转Screen会触发父UIView上的layoutSubviews事件

6、改变一个UIView大小的时候也会触发父UIView上的layoutSubviews事件

注意

阅读全文 »