ios实用源代码面试题讲解_第1页
ios实用源代码面试题讲解_第2页
ios实用源代码面试题讲解_第3页
ios实用源代码面试题讲解_第4页
ios实用源代码面试题讲解_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、iOS面试题讲解面试题讲解iPhone(3G、3GS、4、4GS、5)、iPad(1, 2, 3, 4, mini)的屏幕大小为多少像素?它们各自的桌面应用程序图标为多少像素? iPhone57*57 视网膜屏:114*114 3g .手机屏幕:3.5英寸 分辨率:320*480 3gs 手机屏幕:3.5英寸 分辨率:320*4804 手机屏幕:3.5英寸 分辨率:960*6404gs 手机屏幕:3.5英寸 分辨率:960*6405 手机屏幕:4英寸 分辨率:1136640 iPad72*72 视网膜屏:144*14411024*768 屏幕尺寸 9.721024*768 屏幕尺寸 9.732

2、048*1536 屏幕尺寸 9.74 2048*1536 屏幕尺寸 9.7Mini 屏幕尺寸:7.9 吋和分辨率为 1024 * 768 iPhone 4 4s 5 iPad 3 4 这五种设备为视网膜屏。 面试题讲解UINavigationController是使用那种数据结构来控制各个试图控制器进行相互切换的?请列举其中的几个方法。UINavigationController是用作栈来管理分层应用程序,处理分层数据。pushViewController:viewController animated:BOOL(加载视图控制器) 添加指定的视图控制器并予以显示,后接:是否动画显示popVie

3、wControllerAnimated:BOOL(弹出当前视图控制器) 弹出并向左显示前一个视图popToViewController:viewController animated:BOOL(弹出到指定视图控制器) 回到指定视图控制器, 也就是不只弹出一个面试题讲解UITabBarController是使用那种数据结构来控制各个试图控制器进行相互切换的?请写出其实现方法。链式结构UITabBarController *tabBarController=UITabBarControllerallocinitautorelease;tabBarController.viewControllers

4、=NSArrayarrayWithObjects:viewController1,viewController2,nil;面试题讲解为什么很多内置的类,如TableViewController的delegate的属性是assign不是retain? 循环引用,造成不必要的内存泄露!面试题讲解对象是什么时候被release的? 当对象的所有权为0时,也就是说对象使用完成之后,向对象的最后一个拥有者发送release消息时对象被释放。面试题讲解UIViewController的didReceiveMemoryWarning是在什么时候调用的?默认的操作是什么?当程序接到内存警告时ViewContr

5、oller将会收到这个消息:didReceiveMemoryWarning这个函数的默认实现是:检查controller是否可以安全地释放它的view,比如view本身没有superview并且可以被很容易地重建(从nib或者loadView函数)。如果view可以被释放,那么这个函数释放view并调用viewDidUnload。你可以重载这个函数来释放controller中使用的其他内存。但要记得调用这个函数的super实现来允许父类(一般是UIVIewController)释放view。面试题讲解super didReceiveMemoryWarning;if(!self isViewLo

6、aded) /* release your custom data which will be rebuilt in loadView or viewDidLoad */ 面试题讲解消息推送基本原理(1)Provider:就是为指定iOS设备应用程序提供Push的服务器,(如果IOS设备的应用程序是客户端的话,那么Provider可以理解为服务端消息的发起者);(2)APNS:Apple Push Notification Service苹果消息推送服务器;(3)iPhone:用来接收APNS下发下来的消息;(4)Client App:iOS设备上的应用程序,用来接收iPhone传递APNS下

7、发的消息到制定的一个客户端 app消息的最终响应者; 面试题讲解列举iOS开发中实现多线程的几种方法,谈谈一般什么地方会用到多线程?NSThread 比其他两个轻量级,需要自己管理线程的生命周期,线程同步。线程同步对数据的加锁会有一定的系统开销。NSOperation不需要关心线程管理,数据同步的事情,可以把精力放在自己需要执行的操作上。Grand Central Dispatch (GCD)是Apple开发的一个多核编程的解决方法, GCD的底层依然是用线程实现,不过这样可以让程序员不用关注实现的细节。多线程耗时的操作并行操作(例如同时下载图片)多CPU系统提高程序运行效率面试题讲解什么是动

8、态绑定动态绑定将调用方法的确定也推迟到运行时。在编译时,方法的调用并不和代码绑定 在一起,只有在消实发送出来之后,才确定被调用的代码。通过动态类型和动态绑定技术,您的代码每次执行都可以得到不同的结果。 面试题讲解CALayer和View的关系一个UIView包含CALayer树,CALayer是一个数据模型,包含了一些用于显示的对象,但本身不用于显示。CALayer相当于photoshop的一个层,很多动画可以通过设置CALayer来实现。 面试题讲解extern C 的作用 (1)被 extern “C”限定的函数或变量是 extern 类型的;extern 是 C/C+语言中表明函数和全局

9、变量作用范围(可见性)的关键字,该关键字告诉编译器,其声明的函数和变量可以在本模块或 其它模块中使用。(2)被 extern C修饰的变量和函数是按照 C 语言方式编译和连接的; 面试题讲解Info.plist文件里的bundle identifier(束标识符)它是应用程序的唯一标识符,要始终配置,命名格式为:顶级Internet域+.+公司名称+.+应用名称;UUID含义是通用唯一识别码40位(数组+字母)面试题讲解5.获取项目保存文件根路径?NSArray*paths=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUs

10、erDomainMask, YES); NSString *documentsDirectory = paths objectAtIndex:; Document目录于NSBundle mainBundle区别?面试题讲解网络传输常用的两种数据格式?分别需要我们如何处理数据?哪种格式数据量更大?XMLJSONHTTP请求的几种方式GET:GET可以说是最常见的了,它本质就是发送一个请求来取得服务器上的某一资源。资源通过一组HTTP头和呈现数据(如HTML文本,或者图片或者视频等)返回给客户端。GET请求中,永远不会包含呈现数据。POST:向服务器提交数据。这个方法用途广泛,几乎目前所有的提交操

11、作都是靠这个完成。(1)首先是GET方式提交的数据最多只能是1024字节,因为GET是通过URL提交数据,那么GET可提交的数据量就跟URL的长度有直接关系了。而实际上,URL不存在参数上限的问题,HTTP协议规范没有对URL长度进行限制。这个限制是特定的浏览器及服务器对它的限制。IE对URL长度的限制是2083字节(2K+35)。对于其他浏览器,如Netscape、FireFox等,理论上没有长度限制,其限制取决于操作系统的支持。(2)理论上讲,POST是没有大小限制的,HTTP协议规范也没有进行大小限制,说“POST数据量存在80K/100K的大小限制”是不准确的,POST数据是没有限制的

12、,起限制作用的是服务器的处理程序的处理能力。(3)POST的安全性要比GET的安全性高。HEAD:HEAD和GET本质是一样的,区别在于HEAD不含有呈现数据,而仅仅是HTTP头信息。有的人可能觉得这个方法没什么用,其实不是这样的。想象一个业务情景:欲判断某个资源是否存在,我们通常使用GET,但这里用HEAD则意义更加明确。PUT:这个方法比较少见。HTML表单也不支持这个。本质上来讲, PUT和POST极为相似,都是向服务器发送数据,但它们之间有一个重要区别,PUT通常指定了资源的存放位置,而POST则没有,POST的数据存放位置由服务器自己决定。举个例子:如一个用于提交博文的URL,/addBlog。如果用PUT,则提交的URL会是像这样的”/addBlog/abc123”,其中abc123就是这个博文的地址。而如果用POST,则这个地址会在提交后由服务器告知客户端。目前大部分博客都是这样的。显然,PUT和P

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论