iOS面試題-每日十道-第三天

個人理解 有誤的地方 歡迎小伙伴能給指出

一. CGD的底層實現(xiàn)

  • iOS和OS X的核心是XNU內(nèi)核, GCD是基于XNU內(nèi)核實現(xiàn)的
  • GCD的API全部在libdispatch庫中
  • GCD的底層實現(xiàn)主要有Dispatch Queue 和Dispatch Source
  • Dispatch Queue:管理block操作
  • Dispatch Source:處理事件

二. Notification是同步還是異步?kvo是同步還是異步

包括代理,這些都是同步的;監(jiān)聽和回調(diào)都是在同一個線程中執(zhí)行

三. Objective C中的selector是什么?

可以理解@selector()就是取類方法的編號,他的行為基本可以等同C語言中的函數(shù)指針,只不過C語言中,可以吧函數(shù)名之間賦給一個函數(shù)指針,而Objective-C的類不能之間應(yīng)用函數(shù)指針,這樣只能做一個@selector語法來取.
它的結(jié)果是一個SEL類型,這個類型的本質(zhì)是累方法的編號(函數(shù)地址).方法以selector為索引.selector的數(shù)據(jù)類型是SEL定義成char*,我們可以把它想象成int .每個方法的名字對應(yīng)一個唯一的值.

四. 那些操作是屬于私有api的范疇?

私有API是指存放在PrivateFrameworks框架中的API 是蘋果明確不能使用的API 也可以說 一般在官方文檔和頭文件中看不到,但是實際存在于框架中的API 就是私有API,具體在提交應(yīng)用的時候回自動檢測.
私有API的存在很大一部分是為了保護隱私和系統(tǒng)安全,進制開發(fā)者使用這些功能.但是由于Objective-C的動態(tài)特性 ,使得實際上不可能存在真正意義的阻止調(diào)用這些API.

五. frame和bounds有什么不同

frame的位置是相對父空間的左上角來說的 參照的是父類的坐標(biāo)系,指的是空間在父控件內(nèi)的位置和大小
bounds的位置是相對控件自身的左上角來說的,參照的是自身坐標(biāo)系,指的是自己本身的大小

六. NSTimer和GCD的定時器有什么區(qū)別

NSTimer 可以調(diào)用invalidate進行撤銷,創(chuàng)建和撤銷必須在同一線程
NSTimer需要交定時器添加到當(dāng)前的runloop中
它的時間單位是秒

GCD一旦執(zhí)行就不能撤銷
GCD中的定時器不受runloop模式的影響
時間單位是納秒

七. 應(yīng)用程序的沙盒下,都有哪些文件夾?它們有什么特點?本地緩存一般存在哪個文件下?

1 Documents

將應(yīng)用程序的數(shù)據(jù)文件保存在該目錄下.不過這些數(shù)據(jù)類型僅限于不可以再生的數(shù)據(jù),可再生的數(shù)據(jù)文件應(yīng)該存在LIbrary/Cache下

2 Library 它有兩個子文件
  • caches 主要是緩存文件,用戶使用過程中緩存都可以保存在這些目錄中.保存那些可再生的文件,比如網(wǎng)絡(luò)數(shù)據(jù)請求.因此,應(yīng)用程序通常還需要負(fù)責(zé)刪除這些文件.
  • Preferences 應(yīng)用程序的偏好設(shè)置文件. 我們使用NSUserDefaults寫的設(shè)置數(shù)據(jù)都會保存到該目錄下的一個plist文件中 它會被iTunes同步
3. tmp

各種臨時文件, 保存應(yīng)用再次啟動時不需要的文件.而且,當(dāng)應(yīng)用不在需要這些文件時應(yīng)主動將其刪除,因為該目錄下的東西隨時有可能被系統(tǒng)清除,目前已知的一種可能清理的原因是系統(tǒng)磁盤存儲空間不足的時候

八. 為什么要使用第三方框架

  • 使用第三方框架會大大的提高編碼效率
  • 在完成功能時,三方框架一般性能優(yōu)于我們編寫的代碼
  • 框架有許多值得我們學(xué)習(xí)的技術(shù)和思想
    但第三方框架的使用也有缺點,比如正是因為用第三份框架 所有在使用上回遇到一些意料之外的問題,比如框架作者不在更新框架

九. 談?wù)勀銓VC的理解?

MVC是一種設(shè)計模式,它強制的將應(yīng)用程序的輸入、處理、和輸出分開。使用了MVC的應(yīng)用程序被分為3個核心部件:試圖(View)、模型(Model)、控制器(Controller)。它們各司其職,既分工明確又相互合作。
首先視圖接受用戶輸入請求,然后將請求傳遞給控制器,控制器再調(diào)用某個模型來處理用戶的請求,在控制器的控制下,再將處理后的結(jié)果交給某個視圖進行格式化輸出給用戶。MVC不僅實現(xiàn)了功能模塊和顯示模塊的分離,同時它還提高了系統(tǒng)的可維護性、可擴展性和組件的可復(fù)用性.

十. plist和pct文件的好處?

  • plist文件以便用來儲存數(shù)組或者字典,它是iOS中特有的存儲方式.它可以將數(shù)據(jù)與代碼隔離開,更便于數(shù)據(jù)的管理和展示.

  • pch里面可以保存一些全局的宏和頭文件.

  • pch是預(yù)編譯頭文件,其中存放有工程中已有編譯的部分代碼;在以后建立工程時就不用重新編譯這些代碼.

  • pch頭文件的內(nèi)容能被項目中的其他所有源文件共享訪問

    • 存放一些全局的宏 (整個項目都用得上的宏)
    • 用來包含一些全部的頭文件(整個項目都用得上的頭文件)
    • 能自動打開或者關(guān)閉日志的輸出功能
  • pch弊端:每個文件都會導(dǎo)入,有效率問題.


純手動 有地方是個人理解 有誤的地方希望大家能給指出 謝謝
如果對您有幫助 希望能給個關(guān)注和喜歡~~~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • *面試心聲:其實這些題本人都沒怎么背,但是在上海 兩周半 面了大約10家 收到差不多3個offer,總結(jié)起來就是把...
    Dove_iOS閱讀 27,658評論 30 472
  • 1,NSObject中description屬性的意義,它可以重寫嗎?答案:每當(dāng) NSLog(@"")函數(shù)中出現(xiàn) ...
    eightzg閱讀 4,351評論 2 19
  • 多線程、特別是NSOperation 和 GCD 的內(nèi)部原理。運行時機制的原理和運用場景。SDWebImage的原...
    LZM輪回閱讀 2,132評論 0 12
  • iOS面試小貼士 ———————————————回答好下面的足夠了------------------------...
    不言不愛閱讀 2,255評論 0 7
  • 史上最全的iOS面試題及答案 iOS面試小貼士———————————————回答好下面的足夠了----------...
    Style_偉閱讀 2,580評論 0 35

友情鏈接更多精彩內(nèi)容