※ 選擇題(共25題梗夸,每題3分)
1茵肃、以下對(duì)響應(yīng)鏈說法錯(cuò)誤的是:答案:(A)
A其骄、當(dāng)事件發(fā)生的時(shí)候添诉,響應(yīng)鏈?zhǔn)紫缺话l(fā)送給第一個(gè)響應(yīng)者
B、事件將沿著響應(yīng)者鏈一直向下傳遞庙洼,直到被接受并作出處理
C、如果整個(gè)過程都沒有響應(yīng)這個(gè)事件镊辕,則該事件最終要由APP Delegate做出處理
D油够、一般情況下,在響應(yīng)鏈中只要有對(duì)象處理事件征懈,事件就會(huì)被傳遞
#1.解析:一個(gè)典型的相應(yīng)路線圖如:First Responser -- > The Window -- >The Application -- > App Delegate
2石咬、以下對(duì)多線程開發(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)存空間
D它掂、當(dāng)多個(gè)線程對(duì)同一個(gè)資源出現(xiàn)爭(zhēng)奪的時(shí)候要注意線程安全的問題
# 2.解析:大量的線程降低代碼的可讀性,需要更多的內(nèi)存空間,
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];
}
# 3.解析:便利構(gòu)造器必須是類方法(+方法);而且必須手動(dòng)釋放內(nèi)存
4肢簿、獲取tableview正在window上顯示的cell的indexPath方法是:答案:(B)
A靶剑、- (UITableViewCell *)cellForRowAtIndexPath:(NSIndexPath *)indexPath;
B、- (NSArray *)indexPathsForVisibleRows;
C译仗、- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath;
D抬虽、- (void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath;
# 4.解析:熟悉UITableView的相關(guān)代理方法
5、下面關(guān)于深拷貝與淺拷貝理解正確的是:答案:(A)
A纵菌、深拷貝拷貝的是內(nèi)容阐污,淺拷貝拷貝的是指針。
B咱圆、深拷貝和淺拷貝最大的區(qū)別就是子類對(duì)象的地址是否改變笛辟。
C捷凄、深拷貝是對(duì)對(duì)象本身復(fù)制监透,但是不對(duì)對(duì)象的屬性進(jìn)行復(fù)制。
D、如果子類對(duì)象的地址改變那么就是深拷貝。
# 5.解析:深拷貝拷貝的是內(nèi)容颓帝,淺拷貝拷貝的是指針
6虐译、關(guān)于OC內(nèi)存管理方面說法錯(cuò)誤的是:答案:(B)
A厢拭、OC中的內(nèi)存管理采用引用計(jì)數(shù)機(jī)制
B陨闹、autorelease pool 是OC中一種自動(dòng)的垃圾回收機(jī)制
C、alloc、new或copy來創(chuàng)建一個(gè)對(duì)象,那么你必須調(diào)用release或autorelease
D埋酬、OC的內(nèi)存管理機(jī)制本質(zhì)上還是C語言中的手動(dòng)管理方式,只不過稍加了一些自動(dòng)方法
# 6.解析:自動(dòng)釋放池(Autorelease pool)是OC的一種內(nèi)存自動(dòng)回收機(jī)制写妥,可以將一些臨時(shí)變量通過自動(dòng)釋放池來回收統(tǒng)一釋放拳球。自動(dòng)釋放池本事銷毀的時(shí)候,池子里面所有的對(duì)象都會(huì)做一次release操作
7珍特、以下的代碼會(huì)出現(xiàn)什么問題:
@implementation Person
- (void)setAge:(int)newAge {
self.age = newAge;
}
@end答案:(B)
A祝峻、會(huì)造成循環(huán)引用
B、會(huì)造成死循環(huán)
C扎筒、會(huì)出現(xiàn)內(nèi)存泄露
D莱找、會(huì)出現(xiàn)野指針
# 7。解析:點(diǎn)語法一般調(diào)用的是set或者get方法嗜桌,此處出現(xiàn)了循環(huán)調(diào)用
8奥溺、對(duì)于UIScrollViewController,scrollView將開始降速時(shí),執(zhí)行的方法是:答案:(D)
A骨宠、- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView;{ }
B浮定、- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView;{ }
C、- (void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView;{ }
D层亿、- (void)scrollViewWillBeginDecelerating:
# 8.解析:熟悉UIScrollView的代理方法
9桦卒、以下哪個(gè)控件不是繼承于UIControl答案:(D)
A、UIButton
B匿又、UITextField
C方灾、UISlider
D、UITextView
# 9.解析:UITextView(可滑動(dòng))繼承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)事件谆棱。
D、UIView是用來顯示內(nèi)容的圆仔,可以處理用戶事件,CALayer是用來繪制內(nèi)容的,依賴與UIView來進(jìn)行顯示
# 10.解析:CALayers 是屏幕上的一個(gè)具有可見內(nèi)容的矩形區(qū)域垃瞧,每個(gè)UIView都有一個(gè)根CALayer,其所有的繪制(視覺效果)都是在這個(gè)layer上進(jìn)行的
11坪郭、以下關(guān)于視圖的frame與bounds的理解錯(cuò)誤的是:答案:(A)
A个从、bounds是指這個(gè)view在window坐標(biāo)系的坐標(biāo)和大小
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)系奕污。
# 11.解析:bounds是一個(gè)是以自身左上角的店為原點(diǎn)的坐標(biāo)系
12、以下哪個(gè)方法在當(dāng)程序?qū)⒁顺鰰r(shí)被調(diào)用液走,且通常在此方法里寫一些用來保存數(shù)據(jù)和一些退出前的清理工作碳默。答案:(B)
A、- (void)applicationExitsOnSuspend:(UIApplication *)application{ }
B缘眶、- (void)applicationDidEnterBackground:(UIApplication *)application{ }
C嘱根、- (void)applicationWillTerminate:(UIApplication *)application{ }
D、- (void)applicationDidFinishLaunching:(UIApplication *)application{ }
# 12.解析:自行了解
13巷懈、很多內(nèi)置類如UITableViewController的delegate屬性都是assign而不是retain儿子,這是為了:答案:(D)
A、防止造成內(nèi)存泄露
B砸喻、防止出現(xiàn)野指針
C、防止出現(xiàn)過度釋放
D蒋譬、防止循環(huán)引用
# 13.解析:防止循環(huán)調(diào)用
14割岛、以下不屬于ios中實(shí)現(xiàn)多線程的方法是:答案:(D)
A、NSThread
B犯助、NSOperationQueue
C癣漆、Grand Central Dispatch(GCD)
D、NSURLRequest
# 14.解析:NSURLRequest是網(wǎng)絡(luò)請(qǐng)求
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{ }
# 15.解析:見名知意
16较性、以下關(guān)于導(dǎo)航欄外觀屬性對(duì)應(yīng)的解釋錯(cuò)誤的是:答案:(D)
A用僧、barStyle bar的樣式
B、translucent bar的透明度
C赞咙、backgroundImage bar的背景圖片
D责循、barTintColor bar上控件的顏色
# 16.解析:barTintColor 渲染顏色
17、當(dāng)程序從后臺(tái)將要重新回到前臺(tái)的時(shí)候攀操,會(huì)先執(zhí)行以下哪個(gè)方法:答案:(B)
A院仿、- (void)applicationDidFinishLaunching:(UIApplication*)application{ }
B、- (void)applicationWillEnterForeground:(UIApplication *)application{ }
C速和、- (void)applicationDidBecomeActive:(UIApplication *)application{ }
D歹垫、 - (void)applicationWillTerminate:(UIApplication *)application{ }
# 17.解析:Foreground前臺(tái)
18、實(shí)現(xiàn)一個(gè)singleton的類健芭,下面正確的是:答案:(A)
A县钥、static LOSingleton * shareInstance == nil;
+ ( 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 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;
}
# 18.解析:1.單例是個(gè)類方法(+方法)2.static LOSingleton *sharedInstance == nil ;必須使用static修飾
19痒留、當(dāng)應(yīng)用程序?qū)⒁M(jìn)入非活動(dòng)狀態(tài)執(zhí)行谴麦,在此期間,應(yīng)用程序不接收消息或事件伸头,比如來電話了匾效,此時(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{ }
# 19.解析:D是程序即將結(jié)束活躍狀態(tài)
// 程序的啟動(dòng)流程
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政敢、③①②
# 20.解析:應(yīng)用程序啟動(dòng)順序:首先是Mian函數(shù)
// UICollectionViewController 集合視圖的代理
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();
}
#21.解析:邊緣 上-左-下-右,只有B是四個(gè)參數(shù)
// contentInset 設(shè)置UIScrollView邊框(上 摩骨、左通贞、下、右)
22恼五、以下對(duì)于UIScrollView的屬性昌罩,說法錯(cuò)誤的是:答案:(D)
A、bounces 控制控件遇到邊框是否反彈
B灾馒、pagingEnabled 控制控件是否整頁翻動(dòng)
C茎用、scrollEnabled 控制控件是否能滾動(dòng)
D、contentInset 滾動(dòng)范圍大小
23睬罗、對(duì)于UIScrollViewController轨功,監(jiān)控目前滾動(dòng)的位置的屬性是:答案:(A)
A、contentOffSet
B容达、contentSize
C古涧、contentInset
D、scrollIndicatorInsets
# 23.解析:1.contentOffSet // 當(dāng)前滾動(dòng)區(qū)域 contentSize // UIScrollView可滾動(dòng)區(qū)域
24花盐、在MVC框架中羡滑,M與C通訊,通常使用什么方式算芯?答案:(A)
A柒昏、KVO與通知
B、協(xié)議-代理
C熙揍、類目
D职祷、屬性
# 24.解析:M--C通訊(KVO與通知) C--V通訊(協(xié)議-代理 )
25、對(duì)于UILabel,設(shè)置單詞折行方式的屬性是:答案:(B)
A届囚、textAlignment
B有梆、lineBreakMode
C、numberOfLines
D意系、sizeToFit
# 25.解析:textAlignment // 字體對(duì)齊方式 numberOfLines // 顯示行數(shù)淳梦,如果為0,自動(dòng)換行
※ 判斷題(共5題昔字,每題5分)
1、UISlider、UISwitch作郭、UITextField這些類都繼承于UIControl這個(gè)類陨囊。答案:(T)
正確
錯(cuò)誤
# 26.解析:
2、[textField resignFirstResponder]; 表示讓文本輸入框成為第一響應(yīng)者, 彈出鍵盤進(jìn)入編輯模式夹攒。答案:(F)
正確
錯(cuò)誤
# 27.解析:[textField resignFirstResponder]; 表示讓文本輸入框取消第一響應(yīng)者
// 出棧入棧
3蜘醋、[self.view popToViewController: animated: YES];表示彈出一個(gè)視圖控制器咏尝,到指定視圖控制器上压语。答案:(F)
正確
錯(cuò)誤
# 28.解析:push進(jìn)棧,pop出棧
4编检、numberOfTapsRequired這個(gè)方法能獲取到的是有幾只手指點(diǎn)擊胎食。答案:(F)
正確
錯(cuò)誤
# 29.解析: // numberOfTapsRequired 輕怕幾次
5、[segmentedControl titleForSegmentAtIndex: ]表示指定索引文字的選項(xiàng)允懂。答案:(T)
正確
錯(cuò)誤
# 30.解析:正確