1、以下對(duì)響應(yīng)鏈說(shuō)法錯(cuò)誤的是:答案:(A)
A、當(dāng)事件發(fā)生的時(shí)候,響應(yīng)鏈?zhǔn)紫缺话l(fā)送給第一個(gè)響應(yīng)者 //響應(yīng)者鏈——檢測(cè)觸碰視圖 :觸碰屏幕->硬件檢測(cè)->UIApplication->window->viewController->view->檢測(cè)所有子試圖->最終確認(rèn)觸碰位置.
B、事件將沿著響應(yīng)者鏈一直向下傳遞,直到被接受并作出處理
C、如果整個(gè)過(guò)程都沒(méi)有響應(yīng)這個(gè)事件,則該事件最終要由APP Delegate做出處理
D、一般情況下,在響應(yīng)鏈中只要有對(duì)象處理事件,事件就會(huì)被傳遞 // 傳遞給該對(duì)象后不再傳遞.
2、以下對(duì)多線程開(kāi)發(fā)的理解錯(cuò)誤的是:答案:(C)
A、發(fā)揮多核處理器的優(yōu)勢(shì),并發(fā)執(zhí)行讓系統(tǒng)運(yùn)行的更快、更流暢,用戶體驗(yàn)更好
B、多線程程序中,一個(gè)進(jìn)程包含2個(gè)以上的線程(含2個(gè))
C、大量的線程降低代碼的可讀性,但不需要更多的內(nèi)存空間 // 前半句正確,后半句錯(cuò),需要更多的內(nèi)存空間
D、當(dāng)多個(gè)線程對(duì)同一個(gè)資源出現(xiàn)爭(zhēng)奪的時(shí)候要注意線程安全的問(wèn)題
3、實(shí)現(xiàn)一個(gè)生成Student實(shí)例對(duì)象的便利構(gòu)造器的正確寫法是:答案:(A)
A、+ (id)studentWithName:(NSString *)newName andAge:(int)newAge
{
Student *stu = [[[Student alloc] initWithName:newName andAge:newAge] autorelease];
return stu;
}
B、 - (id)studentWithName:(NSString *)newName andAge:(int)newAge
{
Student *stu = [[Student alloc] initWithName:newName andAge:newAge];
return [stu autorelease];
}
C、 - (void)studentWithName:(NSString *)newName andAge:(int)newAge
{
Student *stu = [[Student alloc] initWithName:newName andAge:newAge];
return [stu autorelease];
}
D、 + (void)studentWithName:(NSString *)newName andAge:(int)newAge
{
Student *stu = [[Student alloc] initWithName:newName andAge:newAge];
return [stu autorelease];
}
4、獲取tableview正在window上顯示的cell的indexPath方法是:答案:(B)
A、- (UITableViewCell *)cellForRowAtIndexPath:(NSIndexPath *)indexPath;// 獲取cell
B、- (NSArray *)indexPathsForVisibleRows;
C、- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath;// cell的點(diǎn)擊方法
D、- (void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath;
5、下面關(guān)于深拷貝與淺拷貝理解正確的是:答案:(A)
A、深拷貝拷貝的是內(nèi)容,淺拷貝拷貝的是指針。
B、深拷貝和淺拷貝最大的區(qū)別就是子類對(duì)象的地址是否改變。
C、深拷貝是對(duì)對(duì)象本身復(fù)制,但是不對(duì)對(duì)象的屬性進(jìn)行復(fù)制。
D、如果子類對(duì)象的地址改變那么就是深拷貝。
6、關(guān)于OC內(nèi)存管理方面說(shuō)法錯(cuò)誤的是:答案:(B)
A、OC中的內(nèi)存管理采用引用計(jì)數(shù)機(jī)制 // 內(nèi)存釋放后并不是內(nèi)存立即被干掉,而是沒(méi)有對(duì)象對(duì)它有持有權(quán).
B、autorelease pool 是OC中一種自動(dòng)的垃圾回收機(jī)制 // 不是自動(dòng)的回收.
C、alloc、new或copy來(lái)創(chuàng)建一個(gè)對(duì)象,那么你必須調(diào)用release或autorelease
D、OC的內(nèi)存管理機(jī)制本質(zhì)上還是C語(yǔ)言中的手動(dòng)管理方式,只不過(guò)稍加了一些自動(dòng)方法
7、以下的代碼會(huì)出現(xiàn)什么問(wèn)題:
@implementation Person
- (void)setAge:(int)newAge {
self.age = newAge;
}
@end答案:(B)
A、會(huì)造成循環(huán)引用
B、會(huì)造成死循環(huán) // 該點(diǎn)語(yǔ)法本身是調(diào)用set語(yǔ)法,在set中調(diào)用set方法賦值,造成死循環(huán).
C、會(huì)出現(xiàn)內(nèi)存泄露
D、會(huì)出現(xiàn)野指針
8、對(duì)于UIScrollViewController,scrollView將開(kāi)始降速時(shí),執(zhí)行的方法是:答案:(D)
A、- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView;{ }// 開(kāi)始拖拽
B、- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView;{ }// 已經(jīng)減速完成,靜止了
C、- (void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView;{ }// 結(jié)束滾動(dòng)
D、- (void)scrollViewWillBeginDecelerating:
9、以下哪個(gè)控件不是繼承于UIControl答案:(D)
A、UIButton
B、UITextField
C、UISlider
D、UITextView // UIScrollView的子類
10、下面對(duì)UIView、UIWindow和CALayer理解錯(cuò)誤的是:答案:(C)
A、UIView繼承于UIResponder
B、UIResponder繼承于NSObject,UIView可以響應(yīng)用戶事件。
C、UIResponder繼承與NSObject,CALayer繼承于NSObject,CALayer可以響應(yīng)事件。//CALayer不響應(yīng)事件,只繪制內(nèi)容
D、UIView是用來(lái)顯示內(nèi)容的,可以處理用戶事件,CALayer是用來(lái)繪制內(nèi)容的,依賴與UIView來(lái)進(jìn)行顯示
11、以下關(guān)于視圖的frame與bounds的理解錯(cuò)誤的是:答案:(A)
A、bounds是指這個(gè)view在window坐標(biāo)系的坐標(biāo)和大小 // frame和bounde詳解 http://www.lxweimin.com/p/c9494fb01678
B、frame指的是這個(gè)view在它superview的坐標(biāo)系的坐標(biāo)和大小
C、frame和bounds是UIView中的兩個(gè)屬性(property)。
D、一個(gè)是以自身左上角的店為原點(diǎn)的坐標(biāo)系,一個(gè)是以屏幕左上角的點(diǎn)為原點(diǎn)的坐標(biāo)系。
12、以下哪個(gè)方法在當(dāng)程序?qū)⒁顺鰰r(shí)被調(diào)用,且通常在此方法里寫一些用來(lái)保存數(shù)據(jù)和一些退出前的清理工作。答案:(B)
A、- (void)applicationExitsOnSuspend:(UIApplication *)application{ }
B、- (void)applicationDidEnterBackground:(UIApplication *)application{ } // 程序進(jìn)入后臺(tái)要執(zhí)行的方法,一般保存數(shù)據(jù)和清理在該方法中,雖然選項(xiàng)C是程序?qū)⒁顺鰰r(shí)被調(diào)用,但是數(shù)據(jù)保存和清理一般不在該方法中.
C、- (void)applicationWillTerminate:(UIApplication *)application{ }
D、- (void)applicationDidFinishLaunching:(UIApplication *)application{ }
13、很多內(nèi)置類如UITableViewController的delegate屬性都是assign而不是retain,這是為了:答案:(D)
A、防止造成內(nèi)存泄露
B、防止出現(xiàn)野指針
C、防止出現(xiàn)過(guò)度釋放
D、防止循環(huán)引用
14、以下不屬于ios中實(shí)現(xiàn)多線程的方法是:答案:(D)// 還有一種:NSObject 實(shí)現(xiàn)異步后臺(tái)執(zhí)行
A、NSThread
B、NSOperationQueue
C、Grand Central Dispatch(GCD)
D、NSURLRequest
15、對(duì)于UISearchBar,要實(shí)現(xiàn)實(shí)時(shí)搜索(即搜索內(nèi)容實(shí)時(shí)發(fā)生變化時(shí)),會(huì)執(zhí)行以下哪個(gè)方法:答案:(C)
A、- (void)searchBarTextDidEndEditing:(UISearchBar *)searchBar;
B、- (BOOL)searchBarShouldEndEditing:(UISearchBar *)searchBar;
C、- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText{ }
D、- (void)searchBarResultsListButtonClicked:(UISearchBar *)searchBar{ }
16、以下關(guān)于導(dǎo)航欄外觀屬性對(duì)應(yīng)的解釋錯(cuò)誤的是:答案:(D)
A、barStyle bar的樣式
B、translucent bar的透明度
C、backgroundImage bar的背景圖片
D、barTintColor bar上控件的顏色 // bar本身的前端顏色
17、當(dāng)程序從后臺(tái)將要重新回到前臺(tái)的時(shí)候,會(huì)先執(zhí)行以下哪個(gè)方法:答案:(B)
A、- (void)applicationDidFinishLaunching:(UIApplication*)application{ }// 應(yīng)用程序加載完畢
B、- (void)applicationWillEnterForeground:(UIApplication *)application{ } // 將要進(jìn)入前臺(tái)
C、- (void)applicationDidBecomeActive:(UIApplication *)application{ }
D、 - (void)applicationWillTerminate:(UIApplication *)application{ }
18、實(shí)現(xiàn)一個(gè)singleton的類,下面正確的是:答案:(A)
A、static LOSingleton * shareInstance;
+ ( LOSingleton *)sharedInstance{
@synchronized(self){
if (shareInstance == nil) {
shareInstance = [[self alloc] init];
}
}
return shareInstance;
}
B、static LOSingleton * shareInstance;
- ( LOSingleton *)sharedInstance{
@synchronized(self){
if (shareInstance == nil) {
shareInstance = [[self alloc] init];
}
}
return shareInstance;
}
C、+ (LOSingleton *) sharedInstance
{
LOSingleton *sharedInstance = nil ; // 少了static 應(yīng)該是 static LOSingleton *sharedInstance = nil ;
static dispatch_once_t onceToken;
dispatch_once (& onceToken, ^ {
sharedInstance = [[self alloc] init];
});
return sharedInstance;
}
D、- (LOSingleton *) sharedInstance
{
static LOSingleton *sharedInstance = nil ;
static dispatch_once_t onceToken;
dispatch_once (& onceToken, ^ {
sharedInstance = [[self alloc] init];
});
return sharedInstance;
}
19、當(dāng)應(yīng)用程序?qū)⒁M(jìn)入非活動(dòng)狀態(tài)執(zhí)行,在此期間,應(yīng)用程序不接收消息或事件,比如來(lái)電話了,此時(shí)會(huì)先執(zhí)行以下哪個(gè)方法:答案:(D)
A、- (void)applicationDidBecomeActive:(UIApplication *)application{ }
B、- (void)applicationDidEnterBackground:(UIApplication *)application{ }
C、- (void)applicationWillTerminate:(UIApplication *)application{ }
D、- (void)applicationWillResignActive:(UIApplication *)application{ }
20、應(yīng)用程序啟動(dòng)順序正確的是:
①在UIApplication代理實(shí)例中重寫啟動(dòng)方法,設(shè)置第一個(gè)ViewController
②程序入口main函數(shù)創(chuàng)建UIApplication實(shí)例和UIApplication代理實(shí)例
③在第一個(gè)ViewController中添加控件,實(shí)現(xiàn)對(duì)應(yīng)的程序界面。 答案:(B)
A、①②③
B、②①③
C、①③②
D、③①②
21、對(duì)于UICollectionViewController,實(shí)現(xiàn)定義每個(gè)元素的margin(邊緣 上-左-下-右) 的方法是:答案:(B)
A、- (CGSize)collectionView:(UICollectionView *)collectionView
layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath
{
return CGSizeMake();
}
B、- (UIEdgeInsets)collectionView:(UICollectionView *)collectionView
layout:(UICollectionViewLayout*)collectionViewLayout insetForSectionAtIndex:(NSInteger)section
{
return UIEdgeInsetsMake();
}
C、- (CGSize)collectionView:(UICollectionView *)collectionView
layout:(UICollectionViewLayout*)collectionViewLayout referenceSizeForHeaderInSection:(NSInteger)section
{
return CGSizeMake();
}
D、- (CGSize)collectionView:(UICollectionView *)collectionView
layout:(UICollectionViewLayout*)collectionViewLayout referenceSizeForFooterInSection:(NSInteger)section
{
return CGSizeMake();
}
22、以下對(duì)于UIScrollView的屬性,說(shuō)法錯(cuò)誤的是:答案:(D)
A、bounces 控制控件遇到邊框是否反彈
B、pagingEnabled 控制控件是否整頁(yè)翻動(dòng)
C、scrollEnabled 控制控件是否能滾動(dòng)
D、contentInset 滾動(dòng)范圍大小 // contentSize 才是滾動(dòng)范圍大小
23、對(duì)于UIScrollViewController,監(jiān)控目前滾動(dòng)的位置的屬性是:答案:(A)
A、contentOffSet // 偏移量
B、contentSize
C、contentInset
D、scrollIndicatorInsets
24、在MVC框架中,M與C通訊,通常使用什么方式?答案:(A)
A、KVO與通知
B、協(xié)議-代理 // C 和 V
C、類目
D、屬性
25、對(duì)于UILabel,設(shè)置單詞折行方式的屬性是:答案:(B)
A、textAlignment // 對(duì)齊方式
B、lineBreakMode
C、numberOfLines
D、sizeToFit // 自適應(yīng)Size
26、關(guān)于ViewController 的 alloc,loadView, viewDidLoad,viewWillAppear的調(diào)用,說(shuō)法錯(cuò)誤的是:答案:(C)
A、alloc在初始化當(dāng)前的ViewController時(shí)調(diào)用
B、沒(méi)有正在使用nib視圖頁(yè)面,子類將會(huì)創(chuàng)建自己的自定義視圖層時(shí)調(diào)用loadView
C、視圖將要加載完畢時(shí),viewDidLoad被調(diào)用
D、視圖即將出現(xiàn)的時(shí)候調(diào)用viewWillAppear
27、關(guān)于系統(tǒng)自帶的UITableViewCell,以下說(shuō)法正確的是:答案:(D)
A、Cell基本組成:編輯、內(nèi)容、輔助
B、編輯:editView。tableView被編輯時(shí)顯示
C、內(nèi)容:contentView。包含imageView,textField等
D、accessoryView。顯示cell的輔助信息
28、UITableView重用機(jī)制中,會(huì)將重用的cell放到哪種類型的集合中。答案:(B)
A、NSMutableArray
B、NSMutableSet
C、NSDictionary
D、NSMutableDictionary
1、UISlider、UISwitch、UITextField這些類都繼承于UIControl這個(gè)類。答案:(T)
正確
錯(cuò)誤
2、[textField resignFirstResponder]; 表示讓文本輸入框成為第一響應(yīng)者, 彈出鍵盤進(jìn)入編輯模式。答案:(F) // 取消第一響應(yīng)者
正確
錯(cuò)誤
3、[self.view popToViewController: animated: YES];表示彈出一個(gè)視圖控制器,到指定視圖控制器上。答案:(F) // 返回(入棧出棧) 并沒(méi)有彈出
正確
錯(cuò)誤
4、numberOfTapsRequired這個(gè)方法能獲取到的是有幾只手指點(diǎn)擊。答案:(F)// 輕拍次數(shù)
正確
錯(cuò)誤
5、[segmentedControl titleForSegmentAtIndex: ]表示指定索引文字的選項(xiàng)。答案:(T)
正確
錯(cuò)誤
附上一張繼承關(guān)系圖:
繼承關(guān)系.jpg
MVC:
MVC.jpg