随笔

1.什么时候用copy

{

copy:分为浅复制和深复制,深复制应用计数器不变,对象被复制一份,

}

2.UIViewController,UIView的父类

3.CALayer和UIView区别

{

UIView和CALayer的那些事

1.继承结构,uiview继承uiresponder 可以监听点击事件。

CALayer继承nsobject 所以不能点击时间

2.所属的框架不同,calayer是coresi 2d。而uiview 属于uikit框架。uikit主要是构建用户界面,响应事件的。

而corez2d 属于一个低级的,绘制内容的对象

UIView来自CALayer,高于CALayer,是CALayer高层实现与封装。UIView的所有特性来源于CALayer支持

}

4.消息响应机制

5.block

6.self.属性,和_属性

7.layoutSubView什么时候调用

8.UIView有个属性window

9.创建一个登录界面想要界面一显示就有键盘

10.控制器创建的方法的不同

11.drawInRect的调用,iconView继承自UIImageView,UIImageView重写drawInRect画一条线,在iconView中给Image赋值,则会显示什么样子

12.soket和HTTp的区别

13.soket, http, tcp,udp分类,原因

14.网络七层协议

{

由上往下:应用层、表示层、会话层、传输层、网络层、数据链路层、物理层。

tcp协议对应的是应"传输层"

http协议对应的是"应用层"

ip协议对应的是"网络层"

socket则是对TCP/IP 的封装和应用(程序员层面上) 底层纯c

TCP/IP协议是传输层协议,主要解决如何在网络中传输。

http是应用层协议,主要解决如何包装数据。

重点:1.理解网络 2.理解七层协议/五层模型 3.理解Socket.

{

应用层: 规定"应用程序"的数据格式. http / ftp /email 等.  //纸条上写的是啥?

传输层: 建立"端口"到"端口"之间的通信. UDP/TCP 协议."端口". //我们帮你传纸条

网络层: 确定每一台计算机的位置,建立"主机"到"主机"之间的通信.IPv4协议,"IP地址".  // 女孩的位置

数据链路层: 确定1和0的分组方式.以太网协议:一组电信号就是一个数据包."MAC地址"/网卡/广播. // 深情告白

物理层: 将电脑连接入网络,传输电信号1和0.      // 一张白纸

互联网分层结构的好处:

上层的变动完全不影响下层的结构.

Socket : "主机 + 端口"就是"Socket(套接字)"  ----- TCP/IP协议

}

3次握手:

1.客户端发送syn包到服务器,客户端进入syn_send状态,等待服务器确认

什么是syn包:

解释:SYN是tcp、ip建立连接的时候使用的握手信号。

2.服务器收到syn包 确认客户的syn,同时自己也发送一个syn + ack包,此时服务器进入syn_recv状态。

3.客户端收到syn+ack包,向服务器发送确认包ack 此包发送完毕,客户端和服务器进入establish状态,完成三次握手

握手过程中传送的包里不包含数据,三次握手完毕后,客户端与服务器才正式开始传输数据

4次挥手:因为tcp连接是全双工的,因此每个方向上都必须单独进行关闭,这个原则是当一方完成

tcp连接的拆除需要发送4个包,因此称为四次挥手,客户端和服务端均可发起挥手操作,在socket编程中,

任何一方执行close()操作即可产生挥手操作。

1.tcp客户端发送一个fin,用来关闭客户端到服务端的数据传送。

2.服务器收到这个fin,回一个ack,确认序号为收到的序号+1;

3.服务器关闭客户端的连接,发送一个pin可客户端

4.客户端,

UDP和TCP的区别:

1.tcp是基于链接的协议,也就是说,在正式收发数据前,必须和对方建立可靠地连接。也就是通过三次握手·。

UDP是面向非连接的协议,它不与对方建立连接,而直接把数据发送出去。

2.传输的重要性,可靠,不可靠。

3.速度快  慢。

4.udp的程序结构比较简单

5.tcp消耗的系统资源要多

http与socket区别

1.http:超文本传输协议,首先它是一个协议,并且是基于tcp/ip基础上的应用层协议。tcp/ip协议是传输层协议,主要解决数据如何网络数据在网络中的传输,http是应用层协议,主要解决如何包装数据,规定了浏览器与服务器之间通讯的规则。是万维网交换数据的基础,http是基于请求-响应形式并且是短连接,并且是无状态的协议。

2.socket:socket不属于协议范畴,而是调用了一个借口,socket是对tcp/ip协议的封装,通过条用socket,才能使用才能使用TCP/IP协议,Socket连接是长连接,理论上客户端和服务器端一旦建立连接将不会主动断开此连接。Socket连接属于请求-响应形式,服务端可主动将消息推送给客户端。;

}

15.coredata是什么!它和SQL的区别是什么?你分别会在那个场景使用它们?

{

coreData 是ios5之后才出来的一个框架,它提供了对象,关系映射的功能,即能将oc对象转成数据,保存在SQLite数据库文件中,也能将保存在数据库中的文件还原成oc对象。在此数据操作期间,我们不需要编写任何的SQL语句,

利用coredata我们可以轻松地把数据库中的记录转换为oc对象,也可以将oc对象转换为数据库中的记录。

}

16.SQLite 数据库概念

{

1.是一个轻量级的数据库,非常的小

2.占用资源少,处理速度快。

3.

1.一个表,存放一组相同类型的数据

2.一行,一条记录,对应着一个完整地数据模型

3.字段(列),记录该条记录的一个属性值

4.主键

{

1.唯一标示一条记录的

2.通常是个整数

3.通常是自动增长的

4.程序员不需要管理主键的数值生成

5.主键是由数据库生成大的

}

增删改查

创建

CREATE TABLE IF NOT EXISTS "TABLE名" ("id" INTEGER NOT NULL PRIMARY AUTOINCREMENT ,"name" TEXT)

删除表:

DROP TABLE IF EXISTS  TABLE名

1.增加:INSERT INTO TABLE名  (name,age,height) VALUES ('LIZAIYU',23,1.8);

2.修改:UPDATE TABLE名 SET name = 'wangwu',age = 12  WHERE id = 1;

3.删除:DELETE FROM TABLE名 WHERE id = 1;

4.查询:SELECT * FROM T_STUDNET

服务器的锁为排他锁,

}

17.往SQLite插入大批量数据

{

如果不主动开启事务,执行insert 和update指令的时候,回味每一条数据开启事务,

主动开启事务,在这期间就不用自动开启事务。

1.开始事务    2.提交事务

事务:是为了插入数据过程中失败,造成数据混乱的情况。

做了一个快照,相当于一个备份,开始插入。插入成功 快照就没了,失败就恢复过来。

}

18.关于地图定位

{

1.mapkit框架用来展示地图

2.corelocation 用来地理定位

lbs :locationbasedservice

solomo :所罗门(social local mobile)

cllocationmanager 对象做用户的定位。

ios8开始,定位分为两种情况,总是使用用户位置:NSLOCationalwaysusagedescription

当使用时才定位:NSLocationWhenInUseDescription

使用clgeocoder 可以完成“地理编码”和“反地理编码”

地理编码方法:根据地名,获取具体的位置信息(比如说,经纬度,地址的全称);

反地理编码:根据经纬度,获取具体的位置信息。

mapKit框架的使用

1.MKMapView专门用于地图的显示。

2.设置用户追踪模式属性,可以跟踪用户的当前位置。

3.可以设值地图类型,mapViewType设置地图类型。

}

19.什么是block?

{

Block是一种数据类型。

是一个能工作的代码单元,在任何需要的时候执行

本质上是一个轻量级的匿名函数,既可以作为参数  还可以作为返回值。

匿名函数。只有函数体,不具备函数名称。

}

20,@property 的使用

{

//以前的

@property 只是给你get方法和set方法做一个声明。

@synthesize 只是用来实现get和set方法

Xcode4.5以后@property会直接生成set方法和get方法

}

21.selector,method和message的区别

{

selector是方法名,message包括selector和方法的参数,method包括selector和方法的具体实现。

}

你可能感兴趣的:(随笔)