电话面试

来源:互联网 发布:淘宝店铺自定义模块 编辑:程序博客网 时间:2024/04/30 00:27
1. 简述push原理,push的证书和其它的右什么不一样? 
 第 一阶段:BeejiveIM服务器把要发送的消息、目的iPhone的标识打包,发
给APNS。 
 第二阶段:APNS在自身的已注册Push服务 的iPhone列表中,查找有相应标识的iPhone,并把消息发到iPhone。 

 第三阶段:iPhone把发来的消息传递给相应的应用程序, 并且按照设定弹出Push通知。

 

2. viewcontroller的一些方法的说明viewDidLoad, viewWillDisappear, viewWillAppear方法的 顺序和 作用? 
viewDidLoad:在视图加载后被调用 
viewWillAppear:视图即将可见时调用。默认情况下不执行任何操作 viewDidAppear: 视图已完全过渡到屏幕上时调用 
viewWillDisappear:视图被驳回时调用,覆盖或以其他方式隐藏。默认情况下不执行任何操作 
viewDidDisappear:视图被驳回后调用,覆盖或以其他方式隐藏。默认情况下不执行任何操作 

先执行viewDidLoad再执行viewWillAppear。 


3. frame 和 bounds 的 区别 ,bound的大小改变frame 改变吗? 
frame:描述当前视图在其父视图中的位置和大小。 

bounds:描述当前视图在其自身坐标系统中的位置和大小。 改变。

 

4. sqlite中插入特殊字符的方法和接收到处理方法。 

除’其他的都是在特殊字符前面加“/”,而  '   ->    '' 。方法:keyWord = keyWord.replace("/", "//");  


5。谈谈你对数组和连表认识,还有你是怎么用他们的? 
NSArray 用于对象有序集合(数组),初始化一个数组时,经常使用
initWithObject  和 initWithObjects。没有s的表示使用一个指针初始化NSArray,初始化后,这个NSArray的实例只有一个数据,所以在调用没有s的函数的时候是不能以nil结束的;但是有s的就不一样了,哪怕只有一个数据,或者没有数据,必须使用一个nil结束。还有一个NSMutableArray可变对象数组,可以进行删除添加排序等一系列操作。 
NSSet 用于对象无序集合,同数组相比,集合是一个无序的;不同元素的集合。数组中的元素可以重复,但是集合不同。 

NSDictionary用于键值映射,key-value, key-value, ..... 一系列键值对。key(键)在整个dictionary是唯一的,通过key可以查询其对应的一个或多个value(值)。 


6。socket编程简述 
它是基于TCP/IP协议,Socket就是一个可以连通网络上不同计算机程序之间的
管道,把一堆数据从管道的A端扔进去,则会从管道的B端(也许同时还可以从C、D、E、F„„端冒出来)。管道的端口由两个因素来唯一确认,即机器的IP地址和程序所使用的端口号。Socket可以支持数据的发送和接收,它会定义一种称为套接字的变量,发送数据时首先创建套接字,然后使用该套接字的sendto等方法对准某个IP/端口进行数据发送;接收端也首先创建套接字,然后将该套接字绑定到一个IP/端口上,所有发向此端口的数据会被该套接字的recv等函数读出。如同读出文件中的数据一样。 
TCP/IP的socket提供下列三种类型套接字。  流式套接字、数据报式套接字、原始式套接字。 
客户端编程步骤: 

1:加载套接字库,创建套接字(WSAStartup()/socket());2:向服务器发出连接请求(connect());3:和服务器端进行通信(send()/recv());4:关闭套接字,关闭加载的套接字库(closesocket()/WSACleanup())。 常用第三方库:1,Asyncsocket库 


7。冒泡算法。 
- ( NSMutableArray *)mySort :( NSMutableArray *) arr { 
    int i,j,len; 
    NSObject *temp;     len=[arr count ]; 
    for (i=len- 1 i>= 0 i--)     { 
        for (j= 0 j<i- 1 j++)         { 
            if ([[arr objectAtIndex :j] compare :[arr objectAtIndex :j+ 1 ]]> 0 )             { 
                temp=[arr objectAtIndex :j]; 
                [arr replaceObjectAtIndex :j withObject :[arr objectAtIndex :j+ 1 ]]; 
                [arr replaceObjectAtIndex :j+ 1 withObject :temp];             }         }     } 

    return arr; 


8。asihttp代码原理 ,异步请求的原理,异步请求最大数目,为什么只能这么多? 

ASIHTTPRequest是一个简易使用的类库,通过包装CFNetwork API 来简化 和服务器端的通讯. 它编写的语言是Objective-C 能够应用于Mac OS X and iPhone 平台的应用程序. 

异步: 请求通过事件触发->服务器处理(这是浏览器仍然可以作其他事情)->处理完毕 

这个数量是跟cpu有关的,并发性取决于cpu核数,每个核只能同时处理一个任务.4核cpu理论上可以并发处理4个任务,如果按http来算就是4个请求,但是cpu是抢占式资源,所以一般来说并发量是要根据任务的耗时和cpu的繁忙度来计算4个左右只是个经验值你开10个短耗时的任务和几个长耗时任务的效率是不同的。 


9。http请求方式? 
通常,HTTP的请求方式有3种,分别是:POST、GET、HEAD。POST和GET方法是用于数据发送的。 
  POST:它将要发送的数据单独放在一个流中进行发送,而不是附加在URL地址后面,这样做的好处是这些数据不会出现在URL地址中。     GET:它将要发送的数据直接添加在URL后面,如:
www.sina.com.cn?username=""&password="",这样的好处是可以直接将数据加在URL后,而不需在用另外的流来发送这些数据,但是缺点也显而易见,它将用户的信息显示出来了。 

    HEAD:它是请求资源的元数据方法。在具体的应用中,我暂时还没遇到过,也不去对它进行研究,需要是在学习。 


10。uiview的圆角属性设置方法。 

m_mainImgView.layer.cornerRadius = 6; m_mainImgView.layer.masksToBounds = YES; 


11。 masksToBounds属性的作用。 
决定子layer是否被当前layer的边界剪切,默认是NO。
0 0
原创粉丝点击