《iOS開發一塊兒來作面試題》- 每日十道- 打卡第一天

 

 

對您有幫助或者您喜歡的話 但願能點個贊或者添加一下關注面試

一. CALayer和UIView的區別聯繫
1 UIView是UIKIt的只能在iOS使用, CALayer是QuartzCore的 iOS和mac os通用
2 CALayer比UIView更加輕量級,可是能夠實現一樣的效果
3 UIView的CALayer相似UIView的子View樹形結構
4 UIView比CALayer多了一個事件處理功能,也就是說UIView能處理用戶觸摸
5 UIView有個重要的屬性layer,能夠返回它的主CALayer實例.CALayer *layer = myView.layer
6 座標系統: CALayer的座標系統比UIView多了一個anchorPoint屬性
7 UIView是iOS系統中界面的基本元素,全部的界面元素都是繼承自它.它自己徹底是由CoreAnimation來實現的.它真正的繪圖部分,是由一個CALayer類來管理的.UIView自己更像是一個CALayer的管理權,訪問它的跟繪圖和跟座標有關的屬性,如frame,bounds等,實際上內部都是在訪問它所包含的CALayer的相關屬性.
layer能夠設置圓角顯示 cornerRadius 也能夠設置陰影 shadowColor 可是若是layer🌲中某個layer設置了圓角 🌲中全部layer的陰影效果將都不顯示.所以要死設置有圓角還要陰影,能夠作兩個UIView重疊,一個layer顯示圓角一個layer顯示陰影
8 渲染 當更新層 改變不能當即顯示在屏幕上.當全部的層都準備好時,能夠調用setNeedsDisplay方法來重繪顯示.
9 變換 要在一個層中添加一個3D或仿射變換,能夠分別設置層的transform或者affineTransform屬性
10 變形Quartz Core的渲染能力 使二維圖像能夠被自由的操縱,就像是三維的.圖像能夠在一個三維座標系中以任意的角度被旋轉 縮放 和傾斜.CATransform3D的一套方法提供了一些魔術般的效果
二. 簡述同步和異步
同步:串行的執行任務 異步:並行的執行任務.同步函數不具有開啓線程的能力,而異步函數具有
所謂同步,就是在發出一個調用時,在沒有獲得結果以前,該調用就不返回.可是一旦調用返回,就獲得返回值了.也就是 由調用者主動等待這個調用結果
而異步則是相反,調用在發出以後,這個調用就直接返回了,因此沒有返回結果.換句話說就是當一個異步過程調用發出後,調用者不會馬上獲得結果。而是在調用發出後,被調用者經過狀態、通知來通知調用者,或經過回調函數處理這個調用.算法

三. 多線程安全怎麼控制?
用互斥鎖,隊列組,柵欄函數,依賴安全

四. 簡要說明何時使用繼承,何時使用類別
在OC中,一個類繼承另外一個類,就是繼承了父類全部的屬性和方法,而且能夠擴充本身的屬性:而類別是在不改變原有類的基礎上進行方法擴充;
所以,根據開發需求,若是這個類須要擴充屬性,或者須要重寫系統的類的某些方法,用繼承;若是隻是對一個類擴充接口和模塊,使用類別更加方便.服務器

五. 簡述蘋果的安全機制
數字簽名機制:在iOS中運行的App必須 擁有本身的數字簽名,而數字簽名來與開發者的數字證書;開發者須要加入"iOS開發者計劃"才能獲取證書 並且其開發的App還要通過嚴格的審查才能在AppStore上架,保證了App的安全;杜絕了第三方和未簽名App的運行;
沙盒保護機制:這種機制使得設備內的各個App之間沒法直接進行交流,只能經過iOS來進行數據傳遞;雖然下降了系統的擴展性可是卻保證了安全性;
不要使用越獄,不然蘋果的安全機制就功虧一簣;
只從AppStore獲取App;
第一次鏈接計算機,不要隨意點"信任";
不要隨意給某個App設置隱私讀取權限;
六 關鍵字const有什麼含意?修飾類呢?static的做用,用於類呢?還有extern c的做用?
當使用 const修飾基數數據類型變量時,該變量就變爲常量,進入靜態區多線程

當使用const修飾指針類型變量時:app

當使用const在指針類型兩邊,那麼該指針變量指向的內存空間的內容就不能改變了,但指針的指向能夠改變.
若是const在變量的左邊,那麼該指針的指向不能改變了,而指向內存空間的內容能夠改變異步

當使用const修飾符時,const NSSting *str,至關於修飾該對象,表示對象是不可更改的.函數

static修飾變量,表示這個內部全局變量,只能在本文件中訪問.系統會將該變量放進靜態區,它的生命週期被延長到了程序結束學習

static修飾類, 表示這個內部的方法, 只能在本文件中訪問.線程

extern c表示聲明瞭一外部變量, 多個外部變量若是同名,實際指向的是同一塊存儲空間.

七. 類工廠方法是什麼?
類工廠方法的實現是爲了向客戶提供方便,它們將分配和初始化合在一個步驟中,返回被建立的對象,並進行自動釋放處理.這些方法的形式是+(type)className..其中className不包括任何前綴. 工廠方法可能不只僅爲了方便使用,它們不但能夠將分配和初始化合在一塊兒,還能夠爲初始化過程提供對象的分配信息.類工廠方法的另外一個目的是使類提供單間實例.
八 UIView從出現到銷燬的過程?
-> loadView
-> viewDidLoad
-> viewWillAppear
-> viewWillLayoutSubviews
-> viewDidLayoutSubviews
-> viewDidAppear
-> viewWillDisappear
-> viewDidDisappear

九. 什麼狀況下回發生內存泄漏和內存溢出?
內存溢出就是你要求分配的內存超出了系統能給你的,系統不能知足需求,因而就產生溢出.
內存泄漏就是指你向系統申請分配內存進行使用,能夠說使用完後沒有驚喜釋放,結果這塊內存也沒法分配給其餘程序,稱之爲內存泄漏
內存泄漏的累計危害很是大 最後會致使內存溢出 程序閃退;
內存泄漏分爲四大類;

常發生內存泄漏:發生內存泄漏的代碼會被屢次執行到,每次被執行的時候都會致使一塊內存泄漏.
偶發生內存泄漏.發生內存泄漏的代碼只有在某些特定的壞境或者操做過程下才會發生;
一次性內存泄漏.發生內存泄漏的代碼只會被執行一次,或者因爲算法上的缺陷,致使總會有一塊僅且一塊內存發生泄漏;
隱式內存泄漏 程序在運行的過程當中不停的分配內存, 可是直到結束的時候才釋放內存,對於運行週期很長的服務器,不及時釋放會耗盡內存;
十 說說響應者鏈條?
響應者鏈條是一條由UIResponder的子類組成的鏈條,它們都可以響應時間,由事件的最佳相應者起,若是它是控制器的view的話,它的上一級響應者就是這個控制器,不然就是它的父控件;控制器的上一級響應者是它父控制器的view,最終一直到window.

純手打 有錯誤或者不對的地方但願你們能給指出
喜歡的小夥伴但願能給個贊 或者添加個關注

交流圈子:

做爲一個開發者,有一個學習的氛圍跟一個交流圈子特別重要,這是一個個人iOS交流羣:1001906160 ,密碼‘000‘’提供一個更大的平臺,無論你是小白仍是大牛歡迎入駐 ,分享BAT,阿里面試題、面試經驗,討論技術, 你們一塊兒交流學習成長!

相關文章
相關標籤/搜索