qq面试题目

本文涵盖iOS开发中的关键知识点,包括Objective-C内存管理、视图控制器生命周期、SQLite特殊字符处理、多线程应用及安全性、Socket编程等。适用于iOS开发者面试准备。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1,Objective-C的内存管理方式, NSAutoreleasePool的作用
2,写一个retain方式声名属性的setter方法
3,Objective-C与C的区别有哪些
4,列出你常用的几个设计模式,列出如何在Objective-C中实现与应用
5,drawRect, lasyoutSubViews的区别
6,列举Cocoa中常用的几种多线程实现,并谈谈多线程安全问题的几种解决方案,什么地方会用到多线程
7,Socket连接相关库,TCP,UDP的连接方法,HTTP的几种常用方式


ios工程师qq再一次电话面试题记录

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 :jwithObject :[arr objectAtIndex :j+ 1 ]];

                [arr replaceObjectAtIndex :j+ 1withObject :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。


回答: 在面试中,可能会遇到一些关于shell脚本的问题。以下是一些常见的shell脚本面试题目: 1. 环境变量在父进程和子进程之间是如何传递的?\[1\] 答:环境变量只能从父进程传递到子进程,子进程对环境变量的修改不会影响到父进程的环境。 2. 请解释一下shell脚本中嵌套if语句的语法。\[2\] 答:在shell脚本中,嵌套if语句的语法是通过使用else if来实现的。可以根据条件的不同执行不同的命令。 3. 不同的操作系统使用不同的内核,同一个内核上可以使用不同的Shell。请列举一些常见的Shell。\[3\] 答:常见的Shell包括sh、bash、csh、ksh等。 希望以上回答对您有所帮助。如果您还有其他问题,请随时提问。 #### 引用[.reference_title] - *1* *3* [关于 Shell 脚本的经典十三问](https://blog.youkuaiyun.com/weixin_38889300/article/details/123391349)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v4^insert_chatgpt"}} ] [.reference_item] - *2* [Shell脚本面试题及答案](https://blog.youkuaiyun.com/qq_39399966/article/details/104345420)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v4^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值