主頁 > 移動端開發 > iOS開發 · 一套iOS底層試卷-我想和你分享

iOS開發 · 一套iOS底層試卷-我想和你分享

2021-10-11 14:07:46 移動端開發

最近一直在帶大師班,學習有一段時間了帶著以下三個目的進行了一場測驗.收益頗多.這里也紀錄下來

?? 考試檢測大家最近的學習

?? 敲響警鐘,希望大家能夠端正學習態度、及時查漏補缺

?? 根據大家在這階段學習的情況調整下階段講課的速度和深度

正常考試 分為四種題型. 總分 200分 (不要問我為什么不是100分,誒...就是玩!!!!??)

1、選擇題 (每題5分, 共10道 50分)

2、判斷題 (每題5分, 共6道 30分)

3、簡單題 (每題10分 共10道 100分)

4、拓展滿分題 (20分)

下面我就貼出題目吧,如果你有時間的,不妨也拿筆本子測驗一下,看看能做多少分,在文章點贊留言我會第一時間發你答案!或者加我微信:mayday1739 備注獲取答案

一、選擇題(每題5分) ?? 有單選有多選哦??

1. 在LP64下,一個指標的有多少個位元組 分值5分
A: 4

B: 8

C: 16

D: 64

2. 一個實體物件的記憶體結構存在哪些元素 分值5分

A:成員變數

B: supClass

C: cache_t

D: bit

3. 下面 sizeof(struct3)大小等于 分值5分

struct LGStruct1 {
    char b;
    int c;
    double a;
    short d;
}struct1;

struct LGStruct2 {
    double a;
    int b;
    char c;
    short d;
}struct2;


struct LGStruct3 {
    double a;
    int b;
    char c;
    struct LGStruct1 str1;
    short d;
    int e;
    struct LGStruct2 str2;
}struct3;

A: 48

B: 56

C: 64

D: 72

4. 下列代碼: re1 re2 re3 re4 re5 re6 re7 re8輸出結果 分值5分

BOOL re1 = [(id)[NSObject class] isKindOfClass:[NSObject class]];     
BOOL re2 = [(id)[NSObject class] isMemberOfClass:[NSObject class]];   
BOOL re3 = [(id)[LGPerson class] isKindOfClass:[LGPerson class]];     
BOOL re4 = [(id)[LGPerson class] isMemberOfClass:[LGPerson class]];  
NSLog(@" re1 :%hhd\n re2 :%hhd\n re3 :%hhd\n re4 :%hhd\n",re1,re2,re3,re4);

BOOL re5 = [(id)[NSObject alloc] isKindOfClass:[NSObject class]];      
BOOL re6 = [(id)[NSObject alloc] isMemberOfClass:[NSObject class]];    
BOOL re7 = [(id)[LGPerson alloc] isKindOfClass:[LGPerson class]];     
BOOL re8 = [(id)[LGPerson alloc] isMemberOfClass:[LGPerson class]];   
NSLog(@" re5 :%hhd\n re6 :%hhd\n re7 :%hhd\n re8 :%hhd\n",re5,re6,re7,re8);

A: 1011 1111

B: 1100 1011

C: 1000 1111

D: 1101 1111

5. (x + 7) & ~7 這個演算法是幾位元組對齊 分值5分

A: 7

B: 8

C: 14

D: 16

6. 判斷下列資料結構大小 分值5分

union kc_t {
    uintptr_t bits;
    struct {
        int a;
        char b;
    };
}

A: 8

B: 12

C: 13

D: 16

7. 元類的 isa 指向誰, 根元類的父類是誰 分值5分
A: 自己 , 根元類

B: 自己 , NSObject

C: 根元類 , 根元類

D: 根元類 , NSObject

8. 查找方法快取的時候發現是亂序的, 為什么? 哈希沖突怎么解決的 分值5分
A: 哈希函式原因 , 不解決

B: 哈希函式原因 , 再哈希

C: 他存他的我也布吉島 , 再哈希

D: 他亂由他亂,清風過山崗 , 不解決

9. 訊息的流程是 分值5分
A: 先從快取快速查找

B: 慢速遞回查找 methodlist (自己的和父類的,直到父類為nil)

C: 動態方法決議

D: 訊息轉發流程

10. 類方法動態方法決議為什么在后面還要實作 resolveInstanceMethod 分值5分
A: 類方法存在元類(以物件方法形式存在), 元類的父類最終是 NSObject 所以我們可以通過resolveInstanceMethod 防止 NSObject 中實作了物件方法!

B: 因為在oc的底層最侄訓是物件方法存在

C: 類方法存在元類以物件方法形式存在.

D: 咸吃蘿卜,淡操心! 蘋果瞎寫的 不用管

二、判斷題 (每題5分)

  1. 光憑我們的物件地址,無法確認物件是否存在關聯物件 分值5分


  1. int c[4] = {1,2,3,4}; int *d = c; c[2] = *(d+2) 分值5分


  1. @interface LGPerson : NSObject{ UIButton *btn } 其中 btn 是實體變數 分值5分


  1. NSObject 除外 元類的父類 = 父類的元類 分值5分


  1. 物件的地址就是記憶體元素的首地址 分值5分


  1. 類也是物件 分值5分


三、簡單題 (每題 10分 合計 100分)

請把它當成一場面試,認真對待 希望大家耐心 切忌浮躁 (和諧學習 不急不躁)

17. 怎么將上層OC代碼還原成 C++代碼 分值10分

18. 怎么打開匯編查看流程,有什么好處 ? 分值10分

19. x/4gx 和 p/x 以及 p $0 代表什么意思 分值10分

20. 類方法存在哪里? 為什么要這么設計? 分值10分

21. 方法慢速查找程序中的二分查找流程,請用偽代碼實作 分值10分

22. ISA_MASK = 0x00007ffffffffff8ULL 那么這個 ISA_MASK 的演算法意義是什么? 分值10分

23. 類的結構里面為什么會有 rw 和 ro 以及 rwe ? 分值10分

24. cache 在什么時候開始擴容 , 為什么? 分值10分

25. objc_msgSend 為什么用匯撰寫 , objc_msgSend 是如何遞回找到imp? 分值10分

26. 一個類的類方法沒有實作為什么可以呼叫 NSObject 同名物件方法 分值10分

四、拓展滿分題 (20分

提交一篇大師班學習期間,你寫的最好的一篇博客 分值20分

五、總結

考試的題目偏向底層, 也比較貼合現在iOS的面試市場! 內容有深有淺,還可以繼續挖坑 (??)

宣告: 內容只是為了促進學習,并不是為行業增加內卷.希望各位靚仔靚女 不要把這些題目作為面試素材為難求職者.
答案可以直接微信我: mayday1739 備注獲取答案

文末推薦:iOS熱門文集

  • ① BAT等各個大廠iOS面試真題+答案大全

  • ② iOS中高級開發必看的熱門書籍(經典必看)

  • ③ iOS開發高級面試"簡歷制作"指導

  • ④ iOS面試流程到基礎知識大全

轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/308632.html

標籤:iOS

上一篇:逆向工程三之工具篇

下一篇:用 SwiftUI 5天組裝一個微信

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 【從零開始擼一個App】Dagger2

    Dagger2是一個IOC框架,一般用于Android平臺,第一次接觸的朋友,一定會被搞得暈頭轉向。它延續了Java平臺Spring框架代碼碎片化,注解滿天飛的傳統。嘗試將各處代碼片段串聯起來,理清思緒,真不是件容易的事。更不用說還有各版本細微的差別。 與Spring不同的是,Spring是通過反射 ......

    uj5u.com 2020-09-10 06:57:59 more
  • Flutter Weekly Issue 66

    新聞 Flutter 季度調研結果分享 教程 Flutter+FaaS一體化任務編排的思考與設計 詳解Dart中如何通過注解生成代碼 GitHub 用對了嗎?Flutter 團隊分享如何管理大型開源專案 插件 flutter-bubble-tab-indicator A Flutter librar ......

    uj5u.com 2020-09-10 06:58:52 more
  • Proguard 常用規則

    介紹 Proguard 入口,如何查看輸出,如何使用 keep 設定入口以及使用實體,如何配置壓縮,混淆,校驗等規則。

    ......

    uj5u.com 2020-09-10 06:59:00 more
  • Android 開發技術周報 Issue#292

    新聞 Android即將獲得類AirDrop功能:可向附近設備快速分享檔案 谷歌為安卓檔案管理應用引入可安全隱藏資料的Safe Folder功能 Android TV新主界面將顯示電影、電視節目和應用推薦內容 泄露的Android檔案暗示了傳說中的谷歌Pixel 5a與折疊屏新機 谷歌發布Andro ......

    uj5u.com 2020-09-10 07:00:37 more
  • AutoFitTextureView Error inflating class

    報錯: Binary XML file line #0: Binary XML file line #0: Error inflating class xxx.AutoFitTextureView 解決: <com.example.testy2.AutoFitTextureView android: ......

    uj5u.com 2020-09-10 07:00:41 more
  • 根據Uri,Cursor沒有獲取到對應的屬性

    Android: 背景:呼叫攝像頭,拍攝視頻,指定保存的地址,但是回傳的Cursor檔案,只有名稱和大小的屬性,沒有其他諸如時長,連ID屬性都沒有 使用 cursor.getInt(cursor.getColumnIndexOrThrow(MediaStore.Video.Media.DURATIO ......

    uj5u.com 2020-09-10 07:00:44 more
  • Android連載29-持久化技術

    一、持久化技術 我們平時所使用的APP產生的資料,在記憶體中都是瞬時的,會隨著斷電、關機等丟失資料,因此android系統采用了持久化技術,用于存盤這些“瞬時”資料 持久化技術包括:檔案存盤、SharedPreference存盤以及資料庫存盤,還有更復雜的SD卡記憶體儲。 二、檔案存盤 最基本存盤方式, ......

    uj5u.com 2020-09-10 07:00:47 more
  • Android Camera2Video整合到自己專案里

    背景: Android專案里呼叫攝像頭拍攝視頻,原本使用的 MediaStore.ACTION_VIDEO_CAPTURE, 后來因專案需要,改成了camera2 1.Camera2Video 官方demo有點問題,下載后,不能直接整合到專案 問題1.多次拍攝視頻崩潰 問題2.雙擊record按鈕, ......

    uj5u.com 2020-09-10 07:00:50 more
  • Android 開發技術周報 Issue#293

    新聞 谷歌為Android TV開發者提供多種新功能 Android 11將自動填表功能整合到鍵盤輸入建議中 谷歌宣布Android Auto即將支持更多的導航和數字停車應用 谷歌Pixel 5只有XL版本 搭載驍龍765G且將比Pixel 4更便宜 [圖]Wear OS將迎來重磅更新:應用啟動時間 ......

    uj5u.com 2020-09-10 07:01:38 more
  • 海豚星空掃碼投屏 Android 接收端 SDK 集成 六步驟

    掃碼投屏,開放網路,獨占設備,不需要額外下載軟體,微信掃碼,發現設備。支持標準DLNA協議,支持倍速播放。視頻,音頻,圖片投屏。好點意思。還支持自定義基于 DLNA 擴展的操作動作。好像要收費,沒體驗。 這里簡單記錄一下集成程序。 一 跟目錄的build.gradle添加私有mevan倉庫 mave ......

    uj5u.com 2020-09-10 07:01:43 more
最新发布
  • 歡迎頁輪播影片

    如圖,引導開始,球從上落下,同時淡入文字,然后文字開始輪播,最后一頁時停止,點擊進入首頁。 在來看看效果圖。 重力球先不講,主要歡迎輪播簡單實作 首先新建一個類 TextTranslationXGuideView,用于影片展示 文本是類似的,最后會有個圖片箭頭影片,布局很簡單,就是一個 TextVi ......

    uj5u.com 2023-04-20 08:40:31 more
  • 【FAQ】關于華為推送服務因營銷訊息頻次管控導致服務通訊類訊息

    一. 問題描述 使用華為推送服務下發IM訊息時,下發訊息請求成功且code碼為80000000,但是手機總是收不到訊息; 在華為推送自助分析(Beta)平臺查看發現,訊息發送觸發了頻控。 二. 問題原因及背景 2023年1月05日起,華為推送服務對咨詢營銷類訊息做了單個設備每日推送數量上限管理,具體 ......

    uj5u.com 2023-04-20 08:40:11 more
  • 歡迎頁輪播影片

    如圖,引導開始,球從上落下,同時淡入文字,然后文字開始輪播,最后一頁時停止,點擊進入首頁。 在來看看效果圖。 重力球先不講,主要歡迎輪播簡單實作 首先新建一個類 TextTranslationXGuideView,用于影片展示 文本是類似的,最后會有個圖片箭頭影片,布局很簡單,就是一個 TextVi ......

    uj5u.com 2023-04-20 08:39:36 more
  • 【FAQ】關于華為推送服務因營銷訊息頻次管控導致服務通訊類訊息

    一. 問題描述 使用華為推送服務下發IM訊息時,下發訊息請求成功且code碼為80000000,但是手機總是收不到訊息; 在華為推送自助分析(Beta)平臺查看發現,訊息發送觸發了頻控。 二. 問題原因及背景 2023年1月05日起,華為推送服務對咨詢營銷類訊息做了單個設備每日推送數量上限管理,具體 ......

    uj5u.com 2023-04-20 08:39:13 more
  • iOS從UI記憶體地址到讀取成員變數(oc/swift)

    開發除錯時,我們發現bug時常首先是從UI顯示發現例外,下一步才會去定位UI相關連的資料的。XCode有給我們提供一系列debug工具,但是很多人可能還沒有形成一套穩定的除錯流程,因此本文嘗試解決這個問題,順便提出一個暴論:UI顯示例外問題只需要兩個步驟就能完成定位作業的80%: 定位例外 UI 組 ......

    uj5u.com 2023-04-19 09:16:23 more
  • FIDE重磅更新!性能飛躍!體驗有禮!

    FIDE 開發者工具重構升級啦!實作500%性能提升,誠邀體驗! 一直以來不少開發者朋友在社區反饋,在使用 FIDE 工具的程序中,時常會遇到諸如加載不及時、代碼預覽/渲染性能不如意的情況,十分影響開發體驗。 作為技術團隊,我們深知一件趁手的開發工具對開發者的重要性,因此,在2023年開年,FinC ......

    uj5u.com 2023-04-19 09:16:15 more
  • 游戲內嵌社區服務開放,助力開發者提升玩家互動與留存

    華為 HMS Core 游戲內嵌社區服務提供快速訪問華為游戲中心論壇能力,支持玩家直接在游戲內瀏覽帖子和交流互動,助力開發者擴展內容生產和觸達的場景。 一、為什么要游戲內嵌社區? 二、游戲內嵌社區的典型使用場景 1、游戲內打開論壇 您可以在游戲內繪制論壇入口,為玩家提供沉浸式發帖、瀏覽、點贊、回帖、 ......

    uj5u.com 2023-04-19 09:15:46 more
  • iOS從UI記憶體地址到讀取成員變數(oc/swift)

    開發除錯時,我們發現bug時常首先是從UI顯示發現例外,下一步才會去定位UI相關連的資料的。XCode有給我們提供一系列debug工具,但是很多人可能還沒有形成一套穩定的除錯流程,因此本文嘗試解決這個問題,順便提出一個暴論:UI顯示例外問題只需要兩個步驟就能完成定位作業的80%: 定位例外 UI 組 ......

    uj5u.com 2023-04-19 09:14:53 more
  • FIDE重磅更新!性能飛躍!體驗有禮!

    FIDE 開發者工具重構升級啦!實作500%性能提升,誠邀體驗! 一直以來不少開發者朋友在社區反饋,在使用 FIDE 工具的程序中,時常會遇到諸如加載不及時、代碼預覽/渲染性能不如意的情況,十分影響開發體驗。 作為技術團隊,我們深知一件趁手的開發工具對開發者的重要性,因此,在2023年開年,FinC ......

    uj5u.com 2023-04-19 09:14:08 more
  • 游戲內嵌社區服務開放,助力開發者提升玩家互動與留存

    華為 HMS Core 游戲內嵌社區服務提供快速訪問華為游戲中心論壇能力,支持玩家直接在游戲內瀏覽帖子和交流互動,助力開發者擴展內容生產和觸達的場景。 一、為什么要游戲內嵌社區? 二、游戲內嵌社區的典型使用場景 1、游戲內打開論壇 您可以在游戲內繪制論壇入口,為玩家提供沉浸式發帖、瀏覽、點贊、回帖、 ......

    uj5u.com 2023-04-19 09:08:34 more