資源描述:
《ios面試題-ios部分_9347481》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。
1、iOS部分理論:1.描述什么是MVC【MVC簡(jiǎn)介】是一種架構(gòu)模式,它是蘋(píng)果非常熱衷的一種架構(gòu)模式M:model模型保存所有應(yīng)用程序里要使用的數(shù)據(jù),比如一款太空大戰(zhàn)游戲,模型要負(fù)責(zé)保存飛船的大小、飛行速度、位置信息、裝載了多少只槍等等這些信息。并且要處理數(shù)據(jù)之間的邏輯比如飛船要打中敵機(jī)多少次能把敵機(jī)擊落模型只是負(fù)責(zé)記錄數(shù)據(jù),跟數(shù)據(jù)的顯示是沒(méi)關(guān)系的,數(shù)據(jù)的顯示是控制器跟視圖的任務(wù)C:controller控制器負(fù)責(zé)控制視圖如何去顯示模型里要顯示的數(shù)據(jù)它要負(fù)責(zé)把模型里的數(shù)據(jù)傳輸給視圖(控制器是通過(guò)視圖控制器的【生命周期】來(lái)控
2、制視圖變化的)V:view視圖視圖就是視圖控制器的小跟班,它的任務(wù)就是負(fù)責(zé)顯示視圖,完全聽(tīng)命于視圖控制器,視圖控制器讓視圖做什么視圖就做什么2.列舉常用網(wǎng)絡(luò)協(xié)議的端口號(hào),例如HTTP默認(rèn)的是80FTP文本傳輸協(xié)議20或21TELNET遠(yuǎn)程登錄協(xié)議23POP3發(fā)郵件協(xié)議1103、frame與bounds的區(qū)別?Bounds的大小改變frame改變嗎答:frame指的是:該view在父view坐標(biāo)系統(tǒng)中的位置和大小。(參照點(diǎn)是父親的坐標(biāo)系統(tǒng))bounds指的是:該view在本身坐標(biāo)系統(tǒng)中的位置和大小。(參照點(diǎn)是本身坐標(biāo)系
3、統(tǒng))會(huì)發(fā)生改變4、UIViewController的生命周期方法調(diào)用順序答:-(void)viewDidLoad;-(void)viewDidUnload;-(void)viewWillAppear:(BOOL)animated;-(void)viewDidAppear:(BOOL)animated;-(void)viewWillDisappear:(BOOL)animated;-(void)viewDidDisappear:(BOOL)animated;5、UITableView的執(zhí)行流程是怎么樣的答:"numbe
4、rOfSectionsInTableView:"返回TableView的section數(shù)目"tableView:titleForHeaderInSection:"section1是否有表頭標(biāo)題欄"tableView:numberOfRowsInSection:"設(shè)置section1中行數(shù)"tableView:heightForRowAtIndexPath:"設(shè)置section1中row1行的高度……row2行的高度……逐行設(shè)置,直至當(dāng)前section1屬性設(shè)置完畢"tableView:titleForHeaderIn
5、Section:"section2是否有表頭欄,之后同4-5,設(shè)置section2的屬性.同理,設(shè)置完畢所有的section的相關(guān)屬性"tableView:cellForRowAtIndexPath:"接下來(lái)設(shè)置的是每個(gè)section中每row添加的數(shù)據(jù)這樣整個(gè)TableView就設(shè)置完畢了.6、如何設(shè)計(jì)一個(gè)可變高度(根據(jù)內(nèi)容自適應(yīng)高度)的UITableViewCell答:1)創(chuàng)建并添加一個(gè)UILabel作為單元格cell的子視圖;2)在UITableView的委托方法:(CGFloat)tableView:(UIT
6、ableView*)tableViewheightForRowAtIndexPath:(NSIndexPath*)indexPath中計(jì)算高度3)在UITableView的委托方法:(UITableViewCell*)tableView:(UITableView*)tableViewcellForRowAtIndexPath:(NSIndexPath*)indexPath中計(jì)算UILabel的框大小。7、UIView的圓角屬性設(shè)置方法答:利用setCornerRadius:8.UIVIiewController在現(xiàn)實(shí)
7、過(guò)程中,各個(gè)方法的調(diào)用順序init->viewDidLoad->viewDidAppear->viewDidUnload9.對(duì)于語(yǔ)句NSString*obj=[[NSDataalloc]init],obj在編譯時(shí)和運(yùn)行時(shí)分別是什么類型的對(duì)象?答:編譯時(shí)為NSString類型,運(yùn)行時(shí)為NSData類型。10.object-c中創(chuàng)建線程的方法是什么?如果在主線程中執(zhí)行代碼,方法是什么?如果想延時(shí)執(zhí)行代碼,方法又是什么?答:a、線程創(chuàng)建有三種方法:使用NSThread創(chuàng)建(detachNewThreadSelector:t
8、oTarget:withObject:)、使用GCD的dispatch、使用子類化的NSOperation,然后將其加入NSOperationQueue;b、在主線程執(zhí)行代碼,方法是performSelectorOnMainThread,c、如果想延時(shí)執(zhí)行代碼可以用performSelector:withObject:afterDelay:11