12個iOS技術面試題及答案總結

2022-09-25 01:27:08 字數 2518 閱讀 6012

前言

隨著移動網際網路科技不斷的發展和創新,如今無論是公司還是開發者或設計師個人而言,面試都是一項耗時耗錢的專案,而面對ios開發者及設計師在面試時可能會遇到的問題進行了篩選與彙總。下面我們一起來一下看看吧。

一、如何繪製uiview?

繪製乙個uiview最靈活的方法就是由它自己完成繪製。實際上你不是繪製乙個uiview,而是子類化乙個uiview並賦予繪製自己的能力。當乙個uiview需要執行繪製操作時,drawrect:方法就會被呼叫,覆蓋此方法讓你獲得繪圖操作的機會。當drawrect:方法被呼叫,當前圖形的上下文也被設定為屬於檢視的圖形上下文,你可以使用core graphic或者uikit提供的方法將圖形畫在該上下文中。

二、什麼是mvvm?主要目的是什麼?優點有哪些?

mvvm即 model-view-viewmodel

1.view主要用於介面呈現,與使用者輸入裝置進行互動、

2.viewmodel是mvvm架構中最重要的部分,viewmodel中包含屬性,方法,事件,屬性驗證等邏輯,負責view與model之間的通訊

3.model就是我們常說的資料模型,用於資料的構造,資料的驅動,主要提供基礎實體的屬性。

mvvm主要目的是分離檢視和模型

mvvm優點:低耦合,可重用性,獨立開發,可測試

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

1.get是向伺服器發索取資料的一種請求,而post是向伺服器提交資料的一種請求

2.get沒有請求體,post有請求體

3.get請求的資料會暴露在位址列中,而post請求不會,所以post請求的安全性比get請求號

4.get請求對url長度有限制,而post請求對url長度理論上是不會收限制的,但是實際上各個伺服器會規定對post提交資料大小進行限制。

四、談談你對多執行緒開發的理解?ios中有幾種實現多執行緒的方法?

好處:1.使用多執行緒可以把程式中佔據時間長的任務放到後台去處理,如,**的**;

2.發揮多核處理器的優勢,併發執行讓系統執行的更快,更流暢,使用者體驗更好;

缺點:1.大量的執行緒降低**的可讀性;

2.更多的執行緒需要更多的記憶體空間;

3當多個執行緒對同乙個資源出現爭奪的時候要注意執行緒安全的問題。

ios有3種多執行緒程式設計的技術:1.nsthread,2.nsoperationqueue,3.gcd;

五、xmpp工作原理;xmpp系統特點

原理:1.所有從乙個client到另乙個client的jabber訊息和資料都要通過xmreapidmupp server

2.client鏈結到server

3.server利用本地目錄系統的證書對其認證

4.server查詢,連線並進行相互認證

5.client間進行互動

特點:1)客戶機/伺服器通訊模式;2)分布式網路;3)簡單的客戶端;4)xml的資料格式

六、地圖的定位是怎麼實現的?

1.匯入了corelocation.framework

2.ios8以後,如果需要使用定位功能,就需要請求使用者授權,在首次執行時會彈框提示

3.通過本機自帶的gps獲取位置資訊(即經緯度)

七、蘋果內購實現流程

程式通過bundle儲存的plist檔案得到產品識別符號的列表。

程式向app store傳送請求,得到產品的資訊。

app store返回產品資訊。

程式把返回的產品資訊顯示給使用者(app的store介面)

使用者選擇某個產品

程式向app store傳送支付請求

app store處理支付請求並返回交易完成資訊。

app獲取資訊並提供內容給使用者。

八、支付寶,微信等相關型別的sdk的整合

1.在支付寶開發平台建立應用並獲取appid

2.配置金鑰

3.整合並配置sdk

4.呼叫介面(如交易查詢介面,交易退款介面)

九、 gcd產生死鎖的原因及解鎖的方法

產生死鎖的必要條件:1.互斥條件,2.請求與保持條件,3.不剝奪條件,4.迴圈等待條件。

解決辦法:採用非同步執行block。

十、生成***的步驟

1.使用cifilter濾鏡類生成***

2.對生成的***進行加工,使其更清晰

3.自定義***背景色、填充色

4.自定義定位角標

5.在***中心插入小

十一、在使用xmpp的時候有沒有什麼困難

傳送附件(,語音,文件...)時比較麻煩

xmpp框架沒有提供傳送附件的功能,需要自己實現

實現方法,把檔案上傳到檔案伺服器,上傳成功後獲取檔案儲存路徑,再把附件的路徑傳送給好友

十二、是否使用過程式設計客棧環信,簡單的說下環信的實現原理

環信是乙個即時通訊的服務提供商

環信使用的是xmpp協議,它是再xmpp的基礎上進行二次開發,對伺服器openfire和客戶端進行功能模型的新增和客戶端sdk的封裝,環信的本質還是使用xmpp,基於socket的網路通訊

總結本文標題: 12個ios技術面試題及答案總結

本文位址: /ruanjian/ios/165221.html

iOS面試題及答案

1 設計模式是什麼?你知道哪些設計模式,並簡要敘述?設計模式是一種編碼經驗,就是用比較成熟的邏輯去處理某一種型別的事情。1 mvc模式 model view control,把模型 檢視 控制器 層進行解耦合編寫。2 mvvm模式 model view viewmodel 把模型 檢視 業務邏輯 層...

iOS面試題文案及答案附件

類別中原則上只能增加方法 能新增屬性的的原因只是通過runtime能新增屬性的的原因只是通過runtime的objc setassociatedobject和objc getassociatedobject方法解決無setter getter的問題而已 類擴充套件不僅可以增加方法,還可以增加例項變數...

面試題及答案

1.css優先順序演算法如何計算 2.css盒子模型 3.new操作符具體幹了什麼呢 4.dom操作 怎樣新增 移除 複製 建立和查詢節點 5.js有幾種資料型別,分別是什麼 6.js如何判斷乙個陣列 7.如何通過指定名稱建立乙個元素 8.在jquery 中,如何給動態新增的元素繫結事件 9.如何獲...