iOS知识点
#pragma mark - 三种Block
- (void)threeBlock {
/*
//block的实现原理是C语言的函数指针。
//函数指针即函数在内存中的地址,通过这个地址可以达到调用函数的目的。
//Block是NSObject的子类,拥有NSObject的所有属性,所有block对象也自己的生命周期,生命周期也会被持有和释放
//block 有三种:
_NSConcreteStackBlock
_NSConcreteGlobalBlock
NSGlobalBlock 静态区block,这是一种特殊的bloclk,因为不引用外部变量而存在。另外,作为静态区的对象,它的释放是有操作系统控制的。
NSStackBlock 栈区block,位于内存的栈区,一般作为函数的参数出现。
NSMallocBlock 堆区block,位于内存的堆区,一般作为对象的property出现。
如果一个blcok引用了外部变量是栈block,则其不引用外部变量就成为了静态blcok。
如果一个block引用了外部变量是堆block,则其不引用外部变量就成为了静态block。
*/
}
#pragma mark - 根据UIView获取所在的UIViewController
/*
原理:
Responder Chain 事件的响应者链 大概的传递规则就是从视图顶层的UIView向下到UIViewController再到RootViewController再到Window最后到Application。
*/
- (UIViewController *)findViewControllerFromView:(UIView *)view {
id responder = view.nextResponder;
while (![responder isKindOfClass:[UIViewController class]]) {
responder = [responder nextResponder];
}
UIViewController *targetViewController = nil;
if ([responder isKindOfClass:[UIViewController class]]) {
//视图所在的控制器
targetViewController = responder;
}
return targetViewController;
}
#pragma mark - TCP 和 UDP 的区别
/*
1、TCP面向连接(如打电话要先拨号建立连接);UDP是无连接的,即发送数据之前不需要建立连接
2、TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保证可靠交付
Tcp通过校验和,重传控制,序号标识,滑动窗口、确认应答实现可靠传输。如丢包时的重发控制,还可以对次序乱掉的分包进行顺序控制。
3、UDP具有较好的实时性,工作效率比TCP高,适用于对高速传输和实时性有较高的通信或广播通信。
4.每一条TCP连接只能是点到点的;UDP支持一对一,一对多,多对一和多对多的交互通信
5、TCP对系统资源要求较多,UDP对系统资源要求较少。
*/
#pragma mark - OSI七层模型加协议
/*
OSI七层网络模型 TCP/IP四层概念模型 对应网络协议
应用层(Application) 应用层 HTTP、TFTP, FTP, NFS, WAIS、SMTP
表示层(Presentation) Telnet, Rlogin, SNMP, Gopher
会话层(Session) SMTP, DNS
传输层(Transport) 传输层 TCP, UDP
网络层(Network) 网络层 IP, ICMP, ARP, RARP, AKP, UUCP
数据链路层(Data Link) 数据链路层 FDDI, Ethernet, Arpanet, PDN, SLIP, PPP
物理层(Physical) IEEE 802.1A, IEEE 802.2到IEEE 802.11
*/
#pragma mark - 一个网址名(URL)有哪些部分组成
/*
有六个部分组成.
scheme://host.domain:port/path/fileName
第一部分scheme.网址的开头使用的是http协议.
第二部分host.就是定义域主机名.也就是www.
第三部分domain就是申请的申请的域名.baidu.com
第四部分port端口号
第五部分path路径
第六部分就是文件名.index.html.因为服务器设置的可以使用默认文件名.所以可以省略.但并不是没有.
例如:
http://www.bitngshiji.com/zhuanti/kaoqianchongci/img.jpg
*/