1.Object-C的类能够多重继承么?( B )程序员
A.能够 B.不能够设计模式
2.什么是主窗口?( B )数组
A.App中惟一的那个UIWinow对象缓存
B.能够接收到键盘输入等事件的UIWindowapp
3.要让对象具备归档必须实现的协议是?( A )函数
A.NSCoding B.NSCopying布局
4.让一个视图刷新的方法是?( A )atom
A.setNeedsDisplay B.drawRect C.loadView D.initWithFramespa
5.关于MRC中的assign和ARC中的weak的区别,下列描述错误的是( C )设计
A.用weak时当对象消失后自动把指针变成nil
B.修饰代理时用weak和assign属性均可以
C.MRC中的assign只能用于基本数据类型,不能用于OC中的对象
D.ARC中的assign只能用于修饰基本数据类型
6.在ARC中 assign,weak,copy,strong 属性的做用,下列说法正确的是(多选)( ABCD )
A.copy : 通常用于NSString\block
B.strong : 通常用于除了NSString\block之外的OC对象
C.weak : 通常用于代理\UI控件 当2个对象相互引用,一端用strong,一端用weak
D.assign : 基本数据类型、枚举、结构体(非OC对象)
7.如下哪些不是UINavigationController的属性?( D )
A.@property(nonatomic,readonly) UINavigationBar *navigationBar;
B.@property(nonatomic,retain) UIBarButtonItem *backBarButtonItem;
C.@property(nonatomic,retain) UIBarButtonItem *leftBarButtonItem;
D.@property(nonatomic,retain) UITabBarItem *tabBarItem;
8.关于层和UIView的区别说法错误的是?( D )
A.二者最大的区别是,图层不会直接渲染到屏幕上,UIView 是iOS系统中界面元素的基础,全部的界面元素都是继承自它
B.UIView自己彻底是由CoreAnimation来实现的
C.UIView真正的绘图部分,是由一个CALayer类来管理,UIView自己更像是一个CALayer的管理器
D.一个UIView上只能有一个CALayer用来加强UIView的展示能力
9.UIViewController在整个生命周期中,如下各个方法的调用顺序正确的是( A )
A. init -> viewDidLoad -> viewWillApper -> viewDidAppear -> viewWillDisapper -> viewDidDisapper
B. init -> viewWillApper -> viewDidAppear -> viewDidLoad -> viewWillDisapper -> viewDidDisapper
C. init -> viewWillApper -> viewDidLoad -> viewDidAppear -> viewWillDisapper -> viewDidDisapper
D. init -> viewWillApper -> viewDidAppear -> viewWillDisapper -> viewDidLoad -> viewDidDisapper
10.在没有navigationController的状况下,要从一个ViewController切换到另外一个ViewController应该( D )
A. [self.navigationController pushViewController:nextViewController animated:YES];
B. [self.view addSubview:nextViewController.view];
C. [self pushViewController:nextViewController animated:YES];
D. [self presentModalViewController:nextViewController animated:YES];
11.如下哪一个不是刷新表格TableView的方法( D )
A. reloadData
B. deleteRowsAtIndexPaths:withRowAnimation:
C. reloadRowsAtIndexPaths:withRowAnimation:
D. reloadTableView
12.如下哪一个不是iOS中数据持久化经常使用的方式( C )
A. 属性列表
B. 对象归档
C. MySQL
D. CoreData
13.关于NSSet、NSArray、NSDictionary说法错误的是( C )
A. NSArray 是顺序的,能够经过下标获取数组中的对象
B. NSDictionary 是无序的,经过键值对匹配,能够经过key-->value
C. NSSet 是有序的,"一般用于作缓冲区",能够经过"anyObject"方法得到其中的对象
D. NSSet、NSArray、NSDictionary只能保存Cocoa对象,不能用于保存C语言中的基本数据类型
14.关于iOS中代理设计模式的说法错误的是( D )
A. 代理自己是一个对象,这个对象是专门表明被代理对象来和程序中其余对象打交道的。
B. 代理的主要价值是它可让你容易的定制各类对象的行为。
C. 当一个类的某些功能须要被别人来实现,可是既不明确是些什么功能,又不明确谁来实现这些功能的时候,代理模式就能够派上用场。
D. 声明一个代理属性时一般须要使用strong防止循环引用问题
15.如下关于-(void)loadView说法错误的是( D )
A. 苹果建议:在loadView方法中,只是建立子视图控件,不设置位置,在viewWillLayoutSubviews方法中设置控件的位置
B. loadView方法是苹果公司专门为程序员提供的,用代码建立视图层次结构的方法
C. 在loadView方法中,一般不要调用[super loadView];若是调用父类方法默认会建立一个空视图
D. 在loadView方法中,若是self.view没有被实例化以前,直接调用self.view,系统会自动建立一个self.view
2、简答题
1.不接收用户的触摸事件的缘由?
答:
(1)不接收用户交互 userInteractionEnabled = NO;
(2)隐藏: hidden = YES;
(3)透明: alpha = 0.0 ~ 0.01;
(4)若是父视图不接收用户交互,那么其中的全部子视图,一样不支持用户交互!
(5)若是子视图所在位置,超出了父视图的有效范围,是不能交互的
即使没有设置clipsToBounds,也只能显示,可是不能交互!
2.iOS应用程序中沙盒内有哪些文件夹,一般分别是用来作什么的?
答:
(1)Documents; (重要的文件通常存一些小的数据)
(2)Library/Caches; (非重要的本地缓存文件)
(3)Library/Preference; (保存应用偏好设置数据)
(4)tmp; (应用程序的临时缓存文件)
3.请分别写出UITableView和UIButton的层级结构(继承关系),一直到 NSObject .
(1)UITableView -> UIScrollView -> UIView -> UIResponder -> NSObject
(2)UIButton -> UIControl -> UIView -> UIResponder -> NSObject
4.请画出CAAnimation的层级结构
5.控制器View的生命周期及相关函数是什么?你在开发中是如何用的?
答:
(1)首先判断控制器是否有视图,若是没有就调用loadView方法建立:经过storyboard或者代码;
(2)随后调用viewDidLoad,能够进行下一步的初始化操做;只会被调用一次;
(3)在视图显示以前调用viewWillAppear;该函数能够屡次调用;
(4)视图viewDidAppear
(5)在视图显示以前调用viewWillDisappear;该函数能够屡次调用(如须要);
(6)在布局变化先后,调用viewWill/DidLayoutSubviews处理相关信息;