基础题

一、选择题


1.Object-C的类可以多重继承么?( B )

A.可以  B.不可以


2.什么是主窗口?( B )

A.App中唯一的那个UIWinow对象

B.可以接收到键盘输入等事件的UIWindow


3.要让对象具有归档必须实现的协议是?( A )

A.NSCoding    B.NSCopying


4.让一个视图刷新的方法是?( A )

A.setNeedsDisplay B.drawRect C.loadView D.initWithFrame


5.关于MRC中的assignARC中的weak的区别,下列描述错误的是( C )

A.weak时当对象消失后自动把指针变成nil

B.修饰代理时用weakassign属性都可以

C.MRC中的assign只能用于基本数据类型,不能用于OC中的对象

D.ARC中的assign只能用于修饰基本数据类型


6.ARC assignweakcopystrong 属性的作用,下列说法正确的是(多选)( 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.关于NSSetNSArrayNSDictionary说法错误的是( C )

A. NSArray 是顺序的,可以通过下标获取数组中的对象

B. NSDictionary 是无序的,通过键值对匹配,可以通过key-->value

C. NSSet 是有序的,"通常用于做缓冲区",可以通过"anyObject"方法获得其中的对象

D. NSSetNSArrayNSDictionary只能保存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


二、简答题

1.不接收用户的触摸事件的原因?

:

1)不接收用户交互 userInteractionEnabled = NO;

2)隐藏: hidden = YES;

3)透明: alpha = 0.0 ~ 0.01;

4)如果父视图不接收用户交互,那么其中的所有子视图,同样不支持用户交互!

5)如果子视图所在位置,超出了父视图的有效范围,是不能交互的

即便没有设置clipsToBounds,也只能显示,但是不能交互!


2.iOS应用程序中沙盒内有哪些文件夹,通常分别是用来做什么的?

:

1Documents;          (重要的文件一般存一些小的数据)

2Library/Caches;     (非重要的本地缓存文件)

3Library/Preference; (保存应用偏好设置数据)

4tmp;                (应用程序的临时缓存文件)


3.请分别写出UITableViewUIButton的层级结构(继承关系),一直到 NSObject .

1UITableView -> UIScrollView -> UIView -> UIResponder -> NSObject

2UIButton -> UIControl -> UIView -> UIResponder -> NSObject


4.请画出CAAnimation的层级结构

 


5.控制器View的生命周期及相关函数是什么?你在开发中是如何用的?

答:

1)首先判断控制器是否有视图,如果没有就调用loadView方法创建:通过storyboard或者代码;

2)随后调用viewDidLoad,可以进行下一步的初始化操作;只会被调用一次;

3)在视图显示之前调用viewWillAppear;该函数可以多次调用;

4)视图viewDidAppear

5)在视图显示之前调用viewWillDisappear;该函数可以多次调用(如需要);

6)在布局变化前后,调用viewWill/DidLayoutSubviews处理相关信息;


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值