当前位置:文档之家› iOS笔试题目

iOS笔试题目

A.assignB.retainC.copyD.Strong选 A ;避免循环引用!那么就要知道循环引用是怎么来的?比如,使用 tableview 的时候我们会设置他的 delete;可能一般情况下是你的 viewcontroller 对象;viewcontroller 持有着这个tableview,如果tableview 不使用 assign (arc 使用 weak)的话,那么就造成了tableview 持有viewcontroller,即相互持有,最终结果是viewcontroller 内存泄露,释放不掉了;这是一个很严重的问题!viewcontroller 是一个很大的对象!B,D 是一个意思,都是持有(保留);copy的话就更不可能了,原因很简单,tableview 怎么知道他的delete 有没有实现 copying 协议呢!2.关于Objective-C中属性的说明,以下错误的是(D)是可读可写特性,需要生成getter方法和setter方法是只读特性,只有getter方法,没有setter方法是赋值属性,setter方法将传入参数赋值给实例变量表示持有特性,copy属性表示拷贝属性,都会建立一个相同的对象Copy是创建一个新对象,Retain是创建一个指针,引用对象计数加1。

Copy属性表示两个对象内容相同,新的对象retain为1 ,与旧有对象的引用计数无关,旧有对象没有变化。

copy减少对象对上下文的依赖。

Retain属性表示两个对象地址相同(建立一个指针,指针拷贝),内容相同,这个对象的retain值+1也就是说,retain 是指针拷贝,copy 是内容拷贝3.下面对category描述不正确的是(B)可以添加新的方法可以删除修改之前的方法C.将类的实现分散到多个不同文件或多个不同框架中D.创建对私有方法的前向引用类别是一种为现有的类添加新方法的方式。

利用Objective-C的动态运行时分配机制,Category提供了一种比继承(inheritance)更为简洁的方法来对class进行扩展,无需创建对象类的子类就能为现有的类添加新方法,可以为任何已经存在的class添加方法,包括那些没有源代码的类(如某些框架类),但不能删除修改之前的方法。

类别主要有3个作用:(1)可以将类的实现分散到多个不同文件或多个不同框架中,方便代码管理。

也可以对框架提供类的扩展(没有源码,不能修改)。

(2)创建对私有方法的前向引用:如果其他类中的方法未实现,在你访问其他类的私有方法时编译器报错这时使用类别,在类别中声明这些方法(不必提供方法实现),编译器就不会再产生警告(3)向对象添加非正式协议:创建一个NSObject的类别称为“创建一个非正式协议”,因为可以作为任何类的委托对象使用。

4.NSRunLoop的以下描述错误的是(C)并不是由系统自动控制的B.有3类对象可以被run loop监控:sources,timers,observersC.线程是默认启动run loop的可手动添加到新建的NSRunLoop中A:Runloop的作用在于当有事情要做时它使当前的thread工作,没有事情做时又使thread 休眠sleep。

Runloop并不是由系统自动控制的,尤其是对那些新建的次线程需要对其进行显示的控制。

B:有3类对象可以被run loop监控:sources、timers、observers。

当这些对象需要处理的时候,为了接收回调,首先必须通过CFRunLoopAddSource,CFRunLoopAddTimer或者CFRunLoopAddObserver把这些对象放入run loop。

要停止接收它的回调,可以通过CFRunLoopRemoveSource从run loop中移除某个对象。

C:每一个线程都有自己的runloop, 主线程是默认开启的,创建的子线程要手动开启,因为NSApplication 只启动main applicaiton thread。

D:NSTimer默认添加到当前NSRunLoop中,也可以手动制定添加到自己新建的NSRunLoop 的中。

5.单例类NSNotificationCenter提供信息广播通知,它采用的是观察者模式的通知机制。

(A)A.对B.错6.判断:从通讯录数据库查询联系人数据,可通过ABAddressBookCopyArrayOfAllPeople 和ABAddressBookCopyPeopleWithName函数获得。

(A)A.对B.错从通信录数据库查询联系人数据是无法使用SQL语句,只能通过ABAddressBookCopyArrayOfAllPeople和ABAddressBookCopyPeopleWithName函数获得. ABAddressBookCopyArrayOfAllPeople函数是查询所有的联系人数据。

ABAddressBookCopyPeopleWithName函数是通过人名查询通讯录中的联系人,其中的name 参数就是查询的前缀关键字。

7.NSURLConnection类的同步请求方法是(A)A.+ sendSynchronousRequest:returningResponse:error:B.– initWithRequest:delegate:C.– initWithRequest:delegate:startImmediately:B和C都是异步方法,需要设置delegate属性。

8.genstrings命名的基本语法:genstrings [-a] [-q] [-o] sourcefile(A)A.对B.错下面是genstrings命名的基本语法:genstrings [-a] [-q] [-o <outputDir>] sourcefile其中参数:-a 在存在的文件后面追加内容-q 关闭多个键/值对的警告-o 指定输出目录因此如果我们想输出到目录,则代码如下:genstrings -o *.m9.面哪些属于UITableViewDelegate协议的方法(C):cellForRowAtIndexPath::numberOfRowsInSection::didSelectRowAtIndexPath::10.平铺导航模式是在内容组织上没有层次关系,展示的内容都放置在一个主屏幕上,采用分屏或分页控制器进行导航,可以左右或者上下滑动屏幕查看内容(A)A.对B.错11.UIPopoverController控制器的常用方法和属性(ABCD):permittedArrowDirections:animated:呈现Popover视图方法: 关闭Popover视图方法,判断Popover视图是否可见,判断Popover视图箭头的方向12.模态视图专用属性有哪些(ABCD),全屏状态,是默认呈现样式,iPhone只能全屏呈现。

,它的宽度是固定的768点,在iPad竖屏情况下则全屏呈现。

,它的是固定的540x620点,无论是横屏还是竖屏情况下呈现尺寸都不会变化。

,它与父视图控制器有相同的呈现方式。

13.iOS单元测试框架有哪些(ABC)OCUnit和XCTest都是官方的测试框架,OCUnit已经过时被XCTest所取代。

GHUnit和OCMock都是第三方的测试框架,其官方地址分别为:gh-unit/gh-unit,erikdoe /ocmock14.NSURLConnectionDelegate协议中的方法有哪些(ABD):didReceiveData::didFailWithError::delegate::单看NSURLConnectionDelegate ,答案只有 B ,而 A 和 D 属于NSURLConnectionDataDelegate 。

仔细看NSURLConnectionDataDelegate 的声明:@protocol NSURLConnectionDataDelegate <NSURLConnectionDelegate>可以知道 A 和 D 也正确15.NSURLRequest的构造函数有(ABCD)A.+ requestWithURL:B.– initWithURL:C.+ requestWithURL:cachePolicy:timeoutInterval:D.– initWithURL:cachePolicy:timeoutInterval:ac-构造函数bd-初始化函数16.iOS应用导航模式有哪些(ABC)A.平铺导航模式B.标签导航模式C.树形结构导航模式D.模态视图17.使用genstring工具可以扫描的宏是有哪些(ABCDEFGH)18.在UIViewController类中与模态相关方法有哪些(AB):animated:completion::completion::19.iOS中导航设计模式有几种(ABC)A.平铺导航B.标签导航C.树形导航D.模态视图导航20.NSXML框架中核心的是NSXMLParser和它的委托协议NSXMLParserDelegate,NSXMLPars erDelegate常用方法有哪些(ABCDE):foundCharacters:didStartElement:namespaceURI:qualifiedName:attributes:didEndElement:namespaceURI:qualifiedName21.NSXMLParser构造方法有哪些(ABC)查api知道只有三个 initWithContentsOfURL,initWithData,initWithStream,也就是本地xml文件的解析必须转化为NSData才可以同时查api知道对于json的初始化方法有JSONObjectWithData, JSONObjectWithStream 解析json用dataWithJSONObject,writeJSONObject;toStream:22.NSAssert类似的宏有哪些(ABCD)assert 是C里面的宏。

用于断言。

NSAssert 只能在Objective-c里面使用。

是assert的一个扩充。

能捕获assert类异常及打印一些可读的日志23.Objective-C有哪几种内存管理方法(ABCD)(Manual Retain Release)(Manual Reference Counting)(Automatic Reference Counting)(Garbage Collection)MRC:手动内存管理。

相关主题