ios经典面试题

ios经典面试题

ID:34116128

大小:307.33 KB

页数:14页

时间:2019-03-03

ios经典面试题_第1页
ios经典面试题_第2页
ios经典面试题_第3页
ios经典面试题_第4页
ios经典面试题_第5页
资源描述:

《ios经典面试题》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、IOS面试题1.在一个对象的方法里面:self.name=“object”;和name=”object”有什么不同吗?答:self.name=”object”:会调用对象的setName()方法;name=“object”:会直接把object赋值给当前对象的name属性。2.请简述self.name=nil的机制,以及与[namerelease]的区别?self.name=nil;//使用nil参数调用setName:方法[namerelease]生成的访问器将自动释放以前的name对象3.请简要说明viewDidLoad和viewDid

2、Unload何时调用答viewDidLoad在view从nib文件初始化时调用,loadView在controller的view为nil时调用。此方法在编程实现view时调用,view控制器默认会注册memorywarningnotification,当viewcontroller的任何view没有用的时候,viewDidUnload会被调用,在这里实现将retain的viewrelease,如果是retain的IBOutletview属性则不要在这里release,IBOutlet会负责release。4.打印结果main(){inta[

3、5]={1,2,3,4,5};int*ptr=(int*)(&a+1);printf(“%d,%d”,*(a+1),*(ptr-1));}答:*(a+1)就是a[1],*(ptr-1)就是a[4],执行结果是2,5&a+1不是首地址+1,系统会认为加一个a数组的偏移,是偏移了一个数组的大小(本例是5个int)int*ptr=(int*)(&a+1);则ptr实际是&(a[5]),也就是a+5原因如下:&a是数组指针,其类型为int(*)[5];而指针加1要根据指针类型加上一定的值,不同类型的指针+1之后增加的大小不同。a是长度为5的int数

4、组指针,所以要加5*sizeof(int)所以ptr实际是a[5]但是prt与(&a+1)类型是不一样的(这点很重要)所以prt-1只会减去sizeof(int*)a,&a的地址是一样的,但意思不一样a是数组首地址,也就是a[0]的地址,&a是对象(数组)首地址,a+1是数组下一元素的地址,即a[1],&a+1是下一个对象的地址,即a[5].5.简述内存分区情况提示:分为代码区、数据区、堆区、栈区(1)代码区:存放函数二进制代码(2)数据区:系统运行时申请内存并初始化,系统退出时由系统释放。存放全局变量、静态变量、常量(3)堆区:通过mal

5、loc等函数或new等操作符动态申请得到,需程序员手动申请和释放(4)栈区:函数模块内申请,函数结束时由系统自动释放。存放局部变量、函数参数6.自动释放池是什么,如何工作当您向一个对象发送一个autorelease消息时,Cocoa就会将该对象的一个引用放入到最新的自动释放池。它仍然是个正当的对象,因此自动释放池定义的作用域内的其它对象可以向它发送消息。当程序执行到作用域结束的位置时,自动释放池就会被释放,池中的所有对象也就被释放。1)objc-c是通过一种”referringcounting”(引用计数)的方式来管理内存的,对象在开始分配

6、内存(alloc)的时候引用计数为一,以后每当碰到有copy,retain的时候引用计数都会加一,每当碰到release和autorelease的时候引用计数就会减一,如果此对象的计数变为了0,就会被系统销毁.2)NSAutoreleasePool就是用来做引用计数的管理工作的,这个东西一般不用你管的.3)autorelease和release没什么区别,只是引用计数减一的时机不同而已,autorelease会在对象的使用真正结束的时候才做引用计数减一.7.frame和bounds有什么不同?答案:frame指的是:该view在父view坐

7、标系统中的位置和大小。(参照点是父亲的坐标系统)//frame:框架、结构bounds指的是:该view在本身坐标系统中的位置和大小。(参照点是本身坐标系统)//bounds:界限8.队列和栈有什么区别:答:队列和栈是两种不同的数据容器。从”数据结构”的角度看,它们都是线性结构,即数据元素之间的关系相同。队列是一种先进先出的数据结构,它在两端进行操作,一端进行入队列操作,一端进行出列队操作。栈是一种先进后出的数据结构,它只能在栈顶进行操作,入栈和出栈都在栈顶操作。9.HTTP协议中,POST和GET的区别是什么?答案:1)get是从服务器上

8、获取数据,post是向服务器传送数据。2)get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到。post是通过HTT

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。