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處理相關信息;