1.单例类NSNotificationCenter提供信息广播通知,它采用的是观察者模式的的通知机制(正确)
理解:NSNotificationCenter使用了KOV,即Key-Value Observing,它提供一种机制,当指定的对象的属性被修改后,则对象就会接收到通知。简单的说就是每次指定的被观察的对象的属性被修改后,KVO就会自动通知相应的观察者了。
2.判断:从通讯录数据库查询联系人数据,可通过ABAddressBookCopyArrayOfAllPeople和ABAddressBookCopyPeopleWithName函数来获得。
理解:从通讯录数据库查询联系人数据是无法使用SQL语句,只能通过ABAddressBookCopyArrayOfAllPeople、ABAddressBookCopyPeopleWithName来获得。ABAddressBookCopyArrayOfAllPeople函数是通过人名查询通讯录中的联系人,其中的name参数是查询的前缀关键字。
3.NSURLConnection类的同步请求方法是?(A)
A.+sendSynchronousRequest:returningResponse:error:
B.-initWithRequest:delegate:
C.-initWithRequest:delegate:startImmediately:
理解:B和C都是异步方法,需要设置delegate属性。
4.genstrings命名的基于语法:genstrings[-a] [-q] [-o]sourcefile (正确)
理解:下面是genstrings命名的基本语法:
genstrings [-a] [-q] [-o <outputDir>] sourcefile
其中参数:
-a:在存在的文件后面追加内容;
-q:关闭多个键值对的警告;
-o:指定输出目录
因此如果我们想输出到en.lproj目录,则代码如下:
genstrings -o en.lproj *.m
5.树形结构导航模式是在内容上有层次的,从上到下或者分类包含等关系。例如黑龙江包含哈尔滨的关系,哈尔滨又包含了道里区等。(正确)
理解:树形导航就是指的是从属关系。
6.NSXML框架中核心的是NSXMLParser和它的委托协议NSXMLParserDelegate,NSXMLParserDelegate常用的方法有哪些?(ABCDE)
A. parserDidStartDocument
B. parser:foundCharacters
C. parser:didStartElement:namespaceURI:qualifiedName:attributes
D. parser:didEndElement:namespaceURI:qulificedName
E. parserDidEndDocument
7.NSXMLParser构造方法有哪些?(ABC)
A. initWithContentsOfURL
B. initWithData
C. initWithStream
D. initWithContentsOfFile
8.判断是否为iPad设备语句是?(C)
A. if([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone){....}
B. if([[UIDevice currentDevice] userInterfaceIdiom] != UIUserInterfaceIdiomPhone){....}
C. if([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad){....}
9.NSAssert类似的宏有哪些?(ABCD)
A. NSAssert1
B. NSAssert2
C.NSAssert3
D.NSAssert4
理解:查阅官方文档:NSAssert1,NSAssert2,NSAssert3,NSAssert4,NSAssert5
10.Objective-C有哪几种内存管理方法?(ABCD)、
A. MRR(Manual Retain Release)
B. MRC(Manual Reference Counting )
C.ARC(Automatic Reference Counting)
D.GC(Garbage Collection)
理解:MRR是MRC的官方名字;
MRC是手动引用计数;
ARC是自动引用计数;
GC是垃圾回收(在开发OS X中使用);
11. AddressBook框架中常用类?(ABCD)
A. ABAddressBook;
B. ABPerson;
C. ABGroup;
D. ABRecord;
12. AddressBookUI框架中的视图控制器?(ABCD)
A. ABPeoplePickerNavigationController;
B. ABPersonViewController;
C. ABNewPersonViewController;
D.ABUnknownPersonViewController;
13.创建联系人使用的函数有哪些?(ABCD)
A. ABPersonCreate
B. ABRecordSetValue
C. ABMultiValueCreateMutable
D. ABAddressBookSave
14.修改联系人使用的函数有哪些?(CD)
A. ABPersonCreate
B. ABRecordSetValue
C. ABAddressBookGetPersonWithRecordID
D. ABAddressBookAddRecord
15.AddressBook高级API是在AddressBookUI框架中定义的,它为我们访问通讯录数据提供了UI界面。该框架提供了哪些试图控制器和委托协议?
A. ABPeoplePickerNavigationController
B. ABPersonViewController
C. ABUnknownPersonViewController
D. ABNewPersonViewController
16.iOS中持久化方式有哪些?(ABCD)
A. 属性列表文件
B. 对象归档
C. SQLite数据库
D. CoreData
17.NSURL的构造函数有?(CD)
A. + requestWithURL:
B - initWithURL:
C + URLWithString:
D - initWithString:
18.表视图的相关类有哪些?(AB)
A. UITableView
B. UITableViewController
C. UITableViewDelegate
D.UITableViewDataSource
理解:注意CD是委托和数据源。
19.下面属于表视图内置的扩展视图常量如下?(ABCD)
A. UITableViewCellAccessoryNone
B. UITableViewCellAccessoryDiscloureIndicator
C. UITableViewCellAccessoryDetailDisclosureButton
D.UITableViewCellAccessoryCheckmark
20.下面与导航相关的试图控制器有那哪些?(BC)
A. UIViewController
B. UINavigationController
C. UITableBarController
D. UITableViewController
21.delegate中的property使用以下哪个属性?(A)
A. assign
B. retain
C. copy
D. strong
理解:assign防止循环引用;
22.关于Objective-C中属性的说明,错误的是(D)
A. readwrite是可读可写特性,需要生成getter方法和setter方法;
B. readonly是只读特性,只有getter方法,没有setter方法;
C.assign是赋值属性,setter方法将传入参数赋值给实例变量;
D.retain表示持有特性,copy属性表示拷贝属性,都会建立一个相同的对象;
理解:
copy是创建一个新对象。
retain是创建一个指针,引用对象计数+1.
copy属性表示两个对象内容相同,新的对象retain为1,与旧有对象的引用计数无关。旧有对象没有变化。copy减少对象对上下文的依赖。
retain属性表示两个对象地址相同(建立一个指针,指针拷贝),内容就是同一个内容,这个对象的retain+1。
也就是说,copy是内容拷贝,retain是内容拷贝。
23.下面对category类别描述不正确的是(B)
A.category可以添加新的方法;
B.category可以删除修改之前的方法;
C.将类的实现分散到多个不同文件或多个不同框架中;
D.创建对私有方法的前向引用;
理解:类别是一种为现有的类添加新方法的方式。利用Objective-C的动态运行时分配机制,Category提供了一种比继承更为简洁的方法来对class进行扩展,无需创建对象类的子类就能为现有的类添加新方法,可以为任何已经存在的class添加方法,包括那些没有源代码的类(比如某些框架类),但不能删除修改之前的方法。
类别主要有3个作用:
(1)可以将类的实现分散到多个不同文件或多个不同框架中,方便代码管理。也可以对框架提供类的扩展(没有源码,不能修改)。
(2)创建对私有方法的前向引用。如果其他类中的方法未实现,在你访问其他类的私有方法时编译器报错。这时使用类别,在类别中声明这些方法(不必提供方法实现),编译器就不会产生警告。
(3)向对象添加非正式协议:创建一个NSObject的类别成为“创建一个非正式协议”,因为可以作为任何类的委托对象使用。
24.NSRunLoop的以下描述错误的是(C)
A. RunLoop并不是由系统自动控制的;
B.有3类对象可以被run loop监控:sources,timer,observers
C.线程是默认启动run loop的;
D.NSTimer可手动添加到新建的NSRunLoop中。
理解:
A:Runloop的作用在于当有事情要做时它使当前的thread工作,没有事情做时又使thread休眠。Runloop并不是由系统自动控制的,尤其是对那些新建的次线程需要对其进行显示的控制。
B:有三类对象可以被run loop监控,source,timer,observers。
C:每一个线程都有自己的runloop,主线程是默认开启的,创建的子线程是要手动开启的,因为NSApplication 只启动main application thread.
D:NSTimer默认添加到当前NSRunLoop中,也可以手动指定添加到自己新建的NSRunLoop中。
25.(判断)平铺导航模式是在内容组织上没有层次关系,展示的内容都放置在一个主屏幕上,采用分屏或分页控制器进行导航,可以左右或者上下滑动屏幕查看内容。(正确)
理解:平铺导航模式是指内容间没有从属关系,主要涉及的控件UIPageControl和UIScrollView。
26. UIPopoverController控制器的常用方法和属性(ABCD)
A. presentPopoverFromBarButtonItem:permittedArrowDirections:animated: 呈现Popover视图方法;
B.dismissPopoverAnimated:关闭Popover视图方法;
C.popoverVisible,判断Popover视图是否可见;
D.popoverArrawDirection,判断Popover视图箭头的方向;
理解:貌似UIPopoverController在iOS9之后被Deprecated了。
27.模态视图专用属性有哪些?(ABCD)
A. UIModalPresentationFullScreen,全屏状态,是默认呈现样式,iPhone只能全屏呈现。
B.UIModalPresentationPageSheet,它的宽度是固定的768点,在iPad竖屏情况下则全屏显示。
C.UIModalPresentationFormSheet,它的是固定的540*620点,无论是横屏还是竖屏情况下呈现尺寸都不会变化。
D.UIModalPresentationCurrentContext,它与父视图控制器有相同的呈现方式。
28.iOS单元测试框架有哪些?(ABC)
A. OCUnit
B. GHUnit
C. OCMock
D. NSXML
理解:OCUnit和XCTest都是官方的测试框架,OCUnit过时已经被XCTest取代。
GHUnit和OCMock都是第三方的测试框架。
29.NSURLRequest的构造函数有(ABCD)
A. +requestWithURL:
B. -initWithURL;
C. requestWithURL:cachePolicy:timeoutInterval;
D.initWithURL:cachePolicy:timeoutInterval;
30.iOS 应用导航模式有哪些?(ABC)
A.平铺导航模式;
B. 标签导航模式;
C.树形结构导航模式;
D.模态视图
31.在UIViewController类中与模态视图相关方法有哪些?(AB)
A. presentViewController:animated:completion:
B, dismissViewControllerAnimated:complation:
C.addChildViewController:
D.removeFromParentViewController.
32.iOS 中导航设计模式有几种?(ABC)
A. 平铺视图;
B. 标签视图;
C.树形视图;
D.模态视图导航;
理解:
平铺导航:UITabBarController
标签导航:UINavigationController
树形导航:UIPageViewController
33.实现多线程都有哪些方法(BC)
A. 使用@synchronized(self)
B. 使用GCD
C. 使用NSOperationQueue
D.使用@thread
34.为什么说OC是runtime language?(ABD)
A. 将数据类型的确定由编译时,推迟到了运行时;
B.运行时机制使我们直到运行时才去决定一个对象的类别,以及调用该类别对象指定方法;
C.如果A继承了B,那么在编译时就已经生成了A的实例;
D.多态是指不同对象以自己的方式响应相同消息的能力;
github主页:https://github.com/chenyufeng1991 。欢迎大家访问!