国产精品无码A∨在线播放|国产剧情国产精品一区|中文字幕婷婷日本本卡|欧美国产一级毛卡片免费

您現在所在的位置:首頁(yè) >學(xué)習資源 > 面試題庫 > 12個(gè)iOS技術(shù)面試題及答案總結

12個(gè)iOS技術(shù)面試題及答案總結

來(lái)源:奇酷教育 發(fā)表于:

隨著(zhù)移動(dòng)互聯(lián)網(wǎng)科技不斷的發(fā)展和創(chuàng )新,如今無(wú)論是公司還是開(kāi)發(fā)者或設計師個(gè)人而言,面試都是一項耗時(shí)耗錢(qián)的項目,而面對iOS開(kāi)發(fā)者及設計師在面試時(shí)可能會(huì )遇到的問(wèn)題進(jìn)行了篩選與匯總

隨著(zhù)移動(dòng)互聯(lián)網(wǎng)科技不斷的發(fā)展和創(chuàng )新,如今無(wú)論是公司還是開(kāi)發(fā)者或設計師個(gè)人而言,面試都是一項耗時(shí)耗錢(qián)的項目,而面對iOS開(kāi)發(fā)者及設計師在面試時(shí)可能會(huì )遇到的問(wèn)題進(jìn)行了篩選與匯總。下面我們一起來(lái)一下看看吧。
一、如何繪制UIView?

繪制一個(gè)UIView最靈活的方法就是由它自己完成繪制。實(shí)際上你不是繪制一個(gè)UIView,而是子類(lèi)化一個(gè)UIView并賦予繪制自己的能力。當一個(gè)UIView需要執行繪制操作時(shí),drawRect:方法就會(huì )被調用,覆蓋此方法讓你獲得繪圖操作的機會(huì )。當drawRect:方法被調用,當前圖形的上下文也被設置為屬于視圖的圖形上下文,你可以使用Core Graphic或者UIKit提供的方法將圖形畫(huà)在該上下文中。

二、什么是MVVM?主要目的是什么??jì)?yōu)點(diǎn)有哪些?

MVVM即 Model-View-ViewModel

1.View主要用于界面呈現,與用戶(hù)輸入設備進(jìn)行交互、
2.ViewModel是MVVM架構中最重要的部分,ViewModel中包含屬性,方法,事件,屬性驗證等邏輯,負責View與Model之間的通訊
3.Model就是我們常說(shuō)的數據模型,用于數據的構造,數據的驅動(dòng),主要提供基礎實(shí)體的屬性。
MVVM主要目的是分離視圖和模型
MVVM優(yōu)點(diǎn):低耦合,可重用性,獨立開(kāi)發(fā),可測試

三、get請求與post請求的區別

1.get是向服務(wù)器發(fā)索取數據的一種請求,而post是向服務(wù)器提交數據的一種請求
2.get沒(méi)有請求體,post有請求體
3.get請求的數據會(huì )暴露在地址欄中,而post請求不會(huì ),所以post請求的安全性比get請求號
4.get請求對url長(cháng)度有限制,而post請求對url長(cháng)度理論上是不會(huì )收限制的,但是實(shí)際上各個(gè)服務(wù)器會(huì )規定對post提交數據大小進(jìn)行限制。

四、談?wù)勀銓Χ嗑€(xiàn)程開(kāi)發(fā)的理解?ios中有幾種實(shí)現多線(xiàn)程的方法?

好處
1.使用多線(xiàn)程可以把程序中占據時(shí)間長(cháng)的任務(wù)放到后臺去處理,如圖片,視頻的下載;
2.發(fā)揮多核處理器的優(yōu)勢,并發(fā)執行讓系統運行的更快,更流暢,用戶(hù)體驗更好;

缺點(diǎn):

1.大量的線(xiàn)程降低代碼的可讀性;
2.更多的線(xiàn)程需要更多的內存空間;
3當多個(gè)線(xiàn)程對同一個(gè)資源出現爭奪的時(shí)候要注意線(xiàn)程安全的問(wèn)題。
ios有3種多線(xiàn)程編程的技術(shù):1.NSThread,2.NSOperationQueue,3.gcd;

五、XMPP工作原理;xmpp系統特點(diǎn)

原理:

1.所有從一個(gè)client到另一個(gè)client的jabber消息和數據都要通過(guò)xmpp server
2.client鏈接到server
3.server利用本地目錄系統的證書(shū)對其認證
4.server查找,連接并進(jìn)行相互認證
5.client間進(jìn)行交互
特點(diǎn):1)客戶(hù)機/服務(wù)器通信模式;2)分布式網(wǎng)絡(luò );3)簡(jiǎn)單的客戶(hù)端;4)XML的數據格式

六、地圖的定位是怎么實(shí)現的?

1.導入了CoreLocation.framework
2.ios8以后,如果需要使用定位功能,就需要請求用戶(hù)授權,在首次運行時(shí)會(huì )彈框提示
3.通過(guò)本機自帶的gps獲取位置信息(即經(jīng)緯度)

七、蘋(píng)果內購實(shí)現流程

程序通過(guò)bundle存儲的plist文件得到產(chǎn)品標識符的列表。
程序向App Store發(fā)送請求,得到產(chǎn)品的信息。
App Store返回產(chǎn)品信息。
程序把返回的產(chǎn)品信息顯示給用戶(hù)(App的store界面)
用戶(hù)選擇某個(gè)產(chǎn)品
程序向App Store發(fā)送支付請求
App Store處理支付請求并返回交易完成信息。
App獲取信息并提供內容給用戶(hù)。

八支付寶,微信等相關(guān)類(lèi)型的sdk的集成

1.在支付寶開(kāi)發(fā)平臺創(chuàng )建應用并獲取APPID
2.配置密鑰
3.集成并配置SDK
4.調用接口(如交易查詢(xún)接口,交易退款接口)

九、 gcd產(chǎn)生死鎖的原因及解鎖的方法

產(chǎn)生死鎖的必要條件:1.互斥條件,2.請求與保持條件,3.不剝奪條件,4.循環(huán)等待條件。
解決辦法:采用異步執行block。

十、生成二維碼的步驟

1.使用CIFilter濾鏡類(lèi)生成二維碼
2.對生成的二維碼進(jìn)行加工,使其更清晰
3.自定義二維碼背景色、填充色
4.自定義定位角標
5.在二維碼中心插入小圖片

十一、在使用XMPP的時(shí)候有沒(méi)有什么困難

發(fā)送附件(圖片,語(yǔ)音,文檔...)時(shí)比較麻煩
XMPP框架沒(méi)有提供發(fā)送附件的功能,需要自己實(shí)現
實(shí)現方法,把文件上傳到文件服務(wù)器,上傳成功后獲取文件保存路徑,再把附件的路徑發(fā)送給好友

十二、是否使用過(guò)環(huán)信,簡(jiǎn)單的說(shuō)下環(huán)信的實(shí)現原理

環(huán)信是一個(gè)即時(shí)通訊的服務(wù)提供商
環(huán)信使用的是XMPP協(xié)議,它是再XMPP的基礎上進(jìn)行二次開(kāi)發(fā),對服務(wù)器Openfire和客戶(hù)端進(jìn)行功能模型的添加和客戶(hù)端SDK的封裝,環(huán)信的本質(zhì)還是使用XMPP,基于Socket的網(wǎng)絡(luò )通信
環(huán)信內部實(shí)現了數據緩存,會(huì )把聊天記錄添加到數據庫,把附件(如音頻文件,圖片文件)下載到本地,使程序員更多時(shí)間是花到用戶(hù)體驗體驗上。