欧馑铮客網(wǎng) iOS 題 42-65

牛客網(wǎng) iOS 題 42-65

42.在移動端瀏覽器讽营,頁面采用 click 時間虎忌,會存在300ms 延遲:

主要原因:瀏覽器需要等待一段時間來判斷是不是雙擊(double tap)

43.混合應(yīng)用(Hybird App)

混合應(yīng)用是在 Native App 上結(jié)合 Web View 來加載 Web 資源的 App,即在 native 中提供一個容器橱鹏,用來加載 h5:
優(yōu)勢:兼容性良好膜蠢,成本低堪藐,更新快
劣勢:性能相對較差,用戶體驗差

44.以下代碼錯誤的地方

NSTimer *myTimer = [NSTimer timerWithTimeInterval:1.0 target:self selector:@selector(doSomeThing:) userInfo:nil repeats:YES];
[MyTimer fire];

創(chuàng)建 NSTimer 方法主要分為兩個類型
1.已經(jīng)包含了創(chuàng)建與運行方法:
scheduledTimerWithTimeInterval
2.需要在創(chuàng)建后手動添加進 Runloop:

NsTimer *timer1 = [NSTimer timerWithTimeInterval:2 target:self selector:@selector(timeMethod:) userInfo:nil repeats:NO];
[[NSRunLoop currentRunLoop] addTimer:timer1 forMode:NSDefaultRunLoopMode];

45.什么情況下使用 weak 關(guān)鍵字挑围,相比 assign 有什么不同礁竞?

  1. 在 ARC 中,在有可能出現(xiàn)循環(huán)引用時杉辙,往往要通過讓其中一端使用 weak 來解決模捂,比如:delegate 代理屬性
  2. 自身對它進行一次強引用,沒有必要再強引用一次蜘矢,也會使用 weak狂男;

不同點:
assign 可以用于非 OC 對象,weak 必須用于 OC 對象

  • weak 指示符該屬性對被賦值對象持有弱引用品腹,弱引用的意思是:即使該弱引用指向被賦值的對象岖食,該對象也可能被回收。
  • assign: 簡單賦值珍昨,不更改索引計數(shù)(Reference Counting)。適用于基礎(chǔ)類型(簡單類型句喷,原子類型):NSInteger,CGPoint,CGFloat,C數(shù)據(jù)類型(int,float,double,char等)镣典。

46.卡頓(特指不流暢的的動畫),是 App 開發(fā)中最為常見的性能問題表現(xiàn)唾琼,在 iOS 中

發(fā)生機理:

  1. 網(wǎng)絡(luò)不暢通兄春,需要加載網(wǎng)絡(luò)資源的時候卡頓;
  2. 線程阻塞锡溯,例如網(wǎng)絡(luò)請求放在主線程中赶舆;
  3. 一次性在內(nèi)存中加載過多的 UI 控件。

優(yōu)化思路:

  1. 耗時較大的操作祭饭,例如網(wǎng)絡(luò)請求芜茵,放到子線程中,主線程盡量只放些 UI 控件
  2. 減少布局復(fù)雜度

47.站在 App 設(shè)計和研發(fā)的角度倡蝙,提出你對不同系統(tǒng)九串,不同品牌,不同機型的設(shè)備適配問題的對策寺鸥。

自由發(fā)揮

48.由于 App 啟動環(huán)節(jié)的感受對用戶體驗影響較大猪钮,我們需要在 App 優(yōu)化中側(cè)重優(yōu)化啟動體驗。請列舉一些導(dǎo)致【App 啟動慢】感受的典型問題或負面模式(Anti-Pattern)及相應(yīng)的優(yōu)化策略胆建。

emmmm

49.與 alloc 相反烤低,retain 相反,alloc 配對使用的分別是哪些方法笆载?

  1. dealloc release dealloc
  2. dealloc release release
  3. dealloc dealloc dealloc
  4. release release release

答案:<font color=“LightYellow”>2</font>

alloc 初始化會使對象的 retainCount = 1扑馁,所以配對是 realease涯呻;
retain 增加引用計數(shù),release 減小引用計數(shù)檐蚜;

50.需要調(diào)用 setName 方法需要使用哪個語句魄懂?

  1. setName(@"obj")
  2. name = @"object"
  3. self.name = @"object"

答案:<font color=“LightYellow”>3</font>

OC語言在聲明對象的時候自動封裝了 setter 和 getter 方法,調(diào)用方式一般為:

  1. [self setName:@"obj"];
  2. self.name = @"obj";(點語法)

51.關(guān)于 NSOperation queue 的說法闯第,正確的是市栗?

  1. 主要用于多線程并發(fā)處理
  2. 它是一個隊列,有嚴格的先進先出
  3. 它不會遵守嚴格的先進先出
  4. 可以通過調(diào)整權(quán)重開調(diào)整隊列的執(zhí)行順序
    答案:<font color=“LightYellow”>1咳短,3填帽,4</font>

NSOPerationQueue會根據(jù)Operation的狀態(tài)(是否Ready)以及優(yōu)先級來確定執(zhí)行的NSOperation的順序

52.為什么說 Objective-C 是 runtime language?

  1. 將數(shù)據(jù)類型的確定有編譯時咙好,推遲到了運行時
  2. 運行時機制使我們直到運行時才去決定一個對象的類別篡腌,以及調(diào)用該類別對象指定方法
  3. 假設(shè) A 繼承了 B 類,那么在編譯時就已經(jīng)生成了 A 的實例
  4. 多態(tài)是指不同對象以自己的方式響應(yīng)相同的消息的能力

答案:<font color=“LightYellow”>1勾效,2嘹悼,4</font>

運行時機制使我們直到運行時才去決定一個對象的類別,以及調(diào)用該類別對象指定方法层宫,是多態(tài)的基礎(chǔ)杨伙。
實例的生成需要開辟空間,所以是在運行期生成

53.下列說法萌腿,正確的是限匣?

  1. category 可以在不獲悉,不改變原來代碼的情況下往里面添加新方法毁菱,只能添加米死,不能刪除修改
  2. implement 可以增加,修改或刪除方法贮庞,并且可以增加屬性
  3. extensions 可以添加屬性
  4. extensions 可以添加方法而不用實現(xiàn)

答案:<font color=“LightYellow”>1峦筒,3</font>

繼承(inherit)可以增加,修改或刪除方法窗慎,并且可以增加屬性
extensions 添加的方法必須在被拓展的類的實現(xiàn)文件中實現(xiàn)

54.關(guān)于淺復(fù)制和深復(fù)制勘天,下列說法正確的是

  1. 淺層復(fù)制:只復(fù)制引用對象的指針,而不復(fù)制引用對象本身捉邢;
  2. 深層復(fù)制:復(fù)制引用對象本身
  3. 如果是淺復(fù)制脯丝,修改一個對象可能會影響另一個對象;
  4. 如果是深復(fù)制伏伐,修改一個對象不會影響另外一個對象宠进;

答案:<font color=“LightYellow”>1,2藐翎,3材蹬,4</font>

55.下列程序輸出的是

NSMutableArray *ary = [[NSMutableArray array] retain];
NSString *str = [NSString stringWithFormat:@"test"];
[str retain];
[ary addObject:str];
NSLog(@"%@%d", str, [str retainCount]);
[str retain];
[str release];
[str release];
NSLog(@"%@%d", str, [str retainCount]);
[ary removeAllObjects];
NSLog(@"%@%d", str, [str retainCount]);
  1. 2实幕,3,1
  2. 3堤器,2昆庇,1
  3. 1,2闸溃,3
  4. -1整吆,-1,-1

答案:<font color=“LightYellow”>4</font>

在 MRC 模式下辉川,NSString依然不能手動分配內(nèi)存表蝙,在 OC 中系統(tǒng)有對其特殊的處理方式

56.關(guān)于內(nèi)存管理,下列說法中錯誤的是

  1. 誰申請乓旗,誰釋放
  2. 內(nèi)存管理主要要避免“過早釋放”和“內(nèi)存泄露”府蛇,對于“過早釋放”需要注意@property 設(shè)置特性時,一定要對特性關(guān)鍵字屿愚,對于“內(nèi)存泄漏”汇跨,一定要申請了要負責(zé)釋放
  3. 關(guān)鍵字 alloc 或 new 生成的對象可以自動釋放
  4. 設(shè)置正確的 property 屬性,對于 retain 需要在合適的地方釋放

答案:<font color=“LightYellow”>3</font>

alloc 和 new 生成的對象不會自動釋放妆距,要自動釋放需要調(diào)用 autorelease 方法穷遂。

57.關(guān)于 readwrite,readonly毅厚,assign塞颁,automatic 的說法浦箱,下列說法錯誤的是

  1. readwrite 是可讀可寫特性吸耿,會同時生成 getter 和 setter 方法;
  2. readonly 是只讀特性酷窥,只會生成 getter 方法咽安;
  3. assign 是賦值屬性,setter 方法將傳入?yún)?shù)賦值給實例變量蓬推;
  4. nonatomic 是非原子操作妆棒,決定編譯器生成的 setter 和 getter 方法是否原子操作;并表示多線程安全沸伏;一般使用 atomic糕珊;

答案:<font color=“LightYellow”>4</font>

atomic 才是線程安全的,但是更耗費性能毅糟,一般常用的是 nonatomic红选。

58.以下說法正確的是

  1. Objective-C 支持多重繼承
  2. Objective-C 中的類可以實現(xiàn)多個接口
  3. Objective-C 中導(dǎo)入頭文件用的是 #include
  4. @class 用于注入對象

答案:<font color=“LightYellow”>2</font>

OC 只支持單一繼承,但是可以利用協(xié)議代理的方法實現(xiàn)多個協(xié)議和接口姆另;
導(dǎo)入文件使用 #import喇肋,可以避免重復(fù)導(dǎo)入坟乾;
@class 用于前向聲明

59.在 UIViewController 類中與模態(tài)相關(guān)方法有哪些?

  1. presentViewController: animated:completion
  2. dismissViewControllerAnimated:completion:
  3. addChildViewController:
  4. removeFromParentViewController

答案:<font color=“LightYellow”>1蝶防,2</font>

iOS 中的模態(tài)視圖(Modal View):一般帶有一個完成鍵和取消鍵甚侣,例如警告框

60.iOS 中導(dǎo)航設(shè)計模式有:

  1. 平鋪導(dǎo)航 UITabbarController
  2. 標簽導(dǎo)航 UINavigationController
  3. 樹形導(dǎo)航 UIPageViewController

61.下面與導(dǎo)航相關(guān)的視圖控制器有

  1. UIViewController
  2. UINavigationController
  3. UITabBarController
  4. UITableViewController

答案:<font color=“LightYellow”>1,2间学,3</font>

UIViewController 是 UINavigationController 和 UITabBarController 的父類

62.平鋪導(dǎo)航模式是在內(nèi)容組織上沒有層次關(guān)系殷费,展示的內(nèi)容都放置在一個主屏幕上,采用分屏或者分頁控制器進行導(dǎo)航菱鸥,可以左右或者上下滑動屏幕查看內(nèi)容宗兼。

答案:<font color=“LightYellow”>1</font>

平鋪導(dǎo)航模式是指內(nèi)容間沒有從屬關(guān)系

63.標簽導(dǎo)航模式是在內(nèi)容被分成幾個功能模塊,每個功能模塊之間沒有什么關(guān)系氮采。通過標簽管理各個功能模塊殷绍,點擊標簽切換功能模塊。

答案:<font color=“LightYellow”>1</font>

64.樹形導(dǎo)航模式是在內(nèi)容有層次的鹊漠,從上到下細分或者分類包含等關(guān)系主到,例如黑龍江省與哈爾濱的關(guān)系,黑龍江省包含了哈爾濱躯概,哈爾濱又包含了道里區(qū)登钥、道外區(qū)等。

答案:<font color=“LightYellow”>1</font>

65.模態(tài)視圖是在導(dǎo)航過程中娶靡,有的時候需要放棄主要任務(wù)轉(zhuǎn)而做其他次要任務(wù)牧牢,完成次要任務(wù)后要再回到主要任務(wù),這個次要任務(wù)就是在“模態(tài)視圖”中完成的姿锭。

答案:<font color=“LightYellow”>1</font>

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末塔鳍,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子呻此,更是在濱河造成了極大的恐慌轮纫,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,482評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件焚鲜,死亡現(xiàn)場離奇詭異掌唾,居然都是意外死亡,警方通過查閱死者的電腦和手機忿磅,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,377評論 2 382
  • 文/潘曉璐 我一進店門糯彬,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人葱她,你說我怎么就攤上這事撩扒。” “怎么了览效?”我有些...
    開封第一講書人閱讀 152,762評論 0 342
  • 文/不壞的土叔 我叫張陵却舀,是天一觀的道長虫几。 經(jīng)常有香客問我,道長挽拔,這世上最難降的妖魔是什么辆脸? 我笑而不...
    開封第一講書人閱讀 55,273評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮螃诅,結(jié)果婚禮上啡氢,老公的妹妹穿的比我還像新娘。我一直安慰自己术裸,他們只是感情好倘是,可當(dāng)我...
    茶點故事閱讀 64,289評論 5 373
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著袭艺,像睡著了一般搀崭。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上猾编,一...
    開封第一講書人閱讀 49,046評論 1 285
  • 那天瘤睹,我揣著相機與錄音,去河邊找鬼答倡。 笑死轰传,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的瘪撇。 我是一名探鬼主播获茬,決...
    沈念sama閱讀 38,351評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼倔既!你這毒婦竟也來了恕曲?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,988評論 0 259
  • 序言:老撾萬榮一對情侶失蹤叉存,失蹤者是張志新(化名)和其女友劉穎码俩,沒想到半個月后度帮,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體歼捏,經(jīng)...
    沈念sama閱讀 43,476評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,948評論 2 324
  • 正文 我和宋清朗相戀三年笨篷,在試婚紗的時候發(fā)現(xiàn)自己被綠了瞳秽。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,064評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡率翅,死狀恐怖练俐,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情冕臭,我是刑警寧澤腺晾,帶...
    沈念sama閱讀 33,712評論 4 323
  • 正文 年R本政府宣布燕锥,位于F島的核電站,受9級特大地震影響悯蝉,放射性物質(zhì)發(fā)生泄漏归形。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,261評論 3 307
  • 文/蒙蒙 一鼻由、第九天 我趴在偏房一處隱蔽的房頂上張望暇榴。 院中可真熱鬧,春花似錦蕉世、人聲如沸蔼紧。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,264評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽奸例。三九已至,卻和暖如春向楼,著一層夾襖步出監(jiān)牢的瞬間哩至,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,486評論 1 262
  • 我被黑心中介騙來泰國打工蜜自, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留菩貌,地道東北人。 一個月前我還...
    沈念sama閱讀 45,511評論 2 354
  • 正文 我出身青樓重荠,卻偏偏與公主長得像箭阶,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子戈鲁,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,802評論 2 345

推薦閱讀更多精彩內(nèi)容

  • 1.ios高性能編程 (1).內(nèi)層 最小的內(nèi)層平均值和峰值(2).耗電量 高效的算法和數(shù)據(jù)結(jié)構(gòu)(3).初始化時...
    歐辰_OSR閱讀 29,321評論 8 265
  • *面試心聲:其實這些題本人都沒怎么背,但是在上海 兩周半 面了大約10家 收到差不多3個offer,總結(jié)起來就是把...
    Dove_iOS閱讀 27,125評論 29 470
  • 今天項目組一個同事將jpg放到了resource文件夾中仇参,其實平常我們的圖片資源文件全是在xcassets里面,于...
    鐵甲陳小寶閱讀 544評論 0 3
  • 外世者不厭其煩地教導(dǎo)著我們婆殿,生活在別處有素沙如綾诈乒,蔚藍湮海,馥郁瀠溪婆芦,你會發(fā)現(xiàn)你的世界你現(xiàn)在生活的地方瘸了腿怕磨。 其...
    咸極咸閱讀 217評論 2 2
  • 我對你做了最大投入或粮,你饋贈了離走导饲,這是我的自討苦吃,自做自受! 你我始于玩笑渣锦,誤會硝岗!終結(jié)于我的糾纏! 你是熱情的人...
    南冬書坊閱讀 252評論 0 0