基础题

1、选择题

 

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处理相关信息;

相关文章
相关标签/搜索