iOS面試題六

1.block和protocol的比較。

block:具有匿名功能的內嵌函數

1)block可以作爲函數參數進行傳遞

2)可以直接在程式碼中撰寫等會要接着執行的程式


protocol:協議就是方法的聲明,並且當某個類遵守了這個協議就相當於擁有了這個協議中所有方法的聲明。



2.對於語句NSString* testObject = [[NSData alloc]init];testObject在編譯時和運行時分別是什麼類型的對象?

編譯時是NSString,運行時是NSData


3. OC中是所有對象間的交互是如何實現的?

消息機制


4. 什麼是沙盒(sandbox)?沙盒包含哪些文件,描述每個文件的使用場景。如何獲取這些文件的路徑?如何獲取應用程序包中文件的路徑?

iOS中的沙盒機制(SandBox)是一種安全體系,它規定了應用程序只能在爲該應用創建的文件夾內讀取文件,不可以訪問其他地方的內容。所有的非代碼文件都保存在這個地方,比如圖片、聲音、屬性列表和文本文件等。

.app文件:這個就是可運行的應用文件

Documents:蘋果建議將程序中創建的或在程序中瀏覽到的文件數據保存在該目錄下,iTunes備份和恢復的時候會包括此目錄

Library:存儲程序的默認設置或其它 狀態信息;Library/Caches:存放緩存文件,iTunes不會備份此目錄,此目錄下文件不會在應用退出刪除

tmp:創建和存放臨時文件的地 方。

//獲取Documents文件夾目錄,第一個參數是說明獲取Doucments文件夾目錄,第二個參數說明是在當前應用沙盒中獲取,所有應用沙盒目錄組成一個數組結構的數據存放
NSArray *docPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);
NSString *documentsPath = [docPath objectAtIndex:0];
//獲取Cache目錄
NSArray *cacPath = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
NSString *cachePath = [cacPath objectAtIndex:0];
//Library目錄
NSArray *libsPath = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);
NSString *libPath = [libsPath objectAtIndex:0];
//temp目錄
NSString *tempPath = NSTemporaryDirectory();


5. 介紹一下XMPP?有什麼優缺點嗎?

XMPPThe Extensible Messaging and Presence Protocol(可擴展通訊和表示協議)

基於XML的點對點的即時通訊協議。
優點:開放,標準,證實可用,分散式,安全,可擴展性,彈性佳,多樣性。

缺點:數據負載太重,沒有二進制數據


6. 請分別寫出SELid的意思?

動態綁定方法   動態類型


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章