1、
寫乙個遞迴方法:計算n的階乘,然後將計算結果進行儲存。以便應用退出後下次啟動課直接獲取該值。
double fun(int n)
if(n==0||n==1)
return 1;
else
return n*fun(n-1);
2、 nsarray和nsmutablearray的區別,多執行緒操作哪個更安全?
nsarray不可變陣列,
nsmutablearray
可變陣列,
nsarray
更安全,多執行緒操作的時候記得加鎖。
3、 iskindofclass、ismemberofclass作用分別是什麼?
-(bool) iskindofclass: classobj判斷是否是這個類或者是這個類子類的例項
-(bool) ismemberofclass: classobj 判斷是否是這個類的例項
4、 請寫出以下**的執行結果
nsstring * name = [ [ nsstring alloc] init ];
name
= @」
habb」;
[ name release];
第一行:[ [ nsstring alloc] init ]
在堆區開闢一塊記憶體,
name
指向堆區的這快記憶體,第二行:
name
指向常量區,這個時候堆區的記憶體沒有釋放也沒有指標指向,會造成記憶體洩露
5、 iphone上,不能被應用程式直接呼叫的系統程式是什麼?
6、以.mm為拓展名的檔案裡,可以包含的**有哪些?c和
obj-c
如何混用
obj-c的編譯器處理字尾為
m的檔案時,可以識別
obj-c和c
的**, 處理
mm檔案可以識別
obj-c,c,c++
**,但
cpp檔案必須只能用
c/c++
**,而且
cpp檔案
include
的標頭檔案中,也不能出現
obj- c
的**,因為
cpp只是
cpp
2) 在
mm檔案中混用
cpp直接使用即可,所以
obj-c
混cpp
不是問題
3)在cpp中混用
obj- c
其實就是使用
obj-c
編寫的模組是我們想要的。
如果模組以類實現,那麼要按照cpp class
的標準寫類的定義,標頭檔案中不能出現
obj-c
的東西,包括
#import cocoa
的。實現檔案中,即類的實現**中可以使用
obj-c
的東西,可以
import,
只是字尾是mm。
如果模組以函式實現,那麼標頭檔案要按 c
的格式宣告函式,實現檔案中,
c++函式內部可以用
obj-c
,但字尾還是mm或
m 7、說說如何進行後台執行程式?
(1)檢查裝置是否支援多工(和
) (3)宣告你需要的後台任務(在info.plist
中新增uibackgroundmodes鍵值:audio
、location
、voip)
8、sizeof和strlen的區別和聯絡
sizeof是運算子,
strlen
是函式char str[20]="0123456789";
int a=strlen(str); //a=10; >>>> strlen 計算字串的長度,以結束符 0x00 為字串結束。
int b=sizeof(str); //而b=20; >>>> sizeof 計算的則是分配的陣列 str[20] 所佔的記憶體空間的大小,不受裡面儲存的內容改變。
9、sprintf,strcpy,memcpy的功能?使用上要有哪些要注意的地方
char*strcpy(char *dest, const char *src);
其對字串進行操作,完成從源字串到目的字串的拷貝,
當源字串的大小大於目的字串的最大儲存空間後,執行該操作會出現段錯誤。
int sprintf(char*str, const char *format, ...)
函式操作的源物件不限於字串:源物件可以是字串、也可以是任意基本型別的資料。主要是實現將其他資料型別轉換為字串
void *memcpy(void*dest, const void *src, size_t n)
實現記憶體的拷貝,實現將一塊記憶體拷貝到另一塊記憶體。該函式對源物件與目的物件沒有型別現在,只是對記憶體的拷貝
10、
用變數a寫出以下定義 a
、乙個整型數 int a;
b、乙個指向整型數的指標 int *a;
c、乙個指向指標的指標,它指向的指標是指向乙個整型數 int **a;
d、乙個有10個整型數的陣列 int a[10]; e
、乙個有10個指標的陣列,該指標是指向乙個整型數的 int *a[10];
f、乙個指向有10個整型數陣列的指標 int (*a)[10];
g、乙個指向函式的指標,該函式有乙個整型引數,並返回乙個整型數 int(*a)(int);
iOS面試題及答案
1 設計模式是什麼?你知道哪些設計模式,並簡要敘述?設計模式是一種編碼經驗,就是用比較成熟的邏輯去處理某一種型別的事情。1 mvc模式 model view control,把模型 檢視 控制器 層進行解耦合編寫。2 mvvm模式 model view viewmodel 把模型 檢視 業務邏輯 層...
iOS面試題文案及答案附件
類別中原則上只能增加方法 能新增屬性的的原因只是通過runtime能新增屬性的的原因只是通過runtime的objc setassociatedobject和objc getassociatedobject方法解決無setter getter的問題而已 類擴充套件不僅可以增加方法,還可以增加例項變數...
面試題答案
2.tomcat工作原理 1.tomcat需要監聽本機上的某個埠。2.tomcat需要抓取此埠上來自客戶端的鏈結並獲得請求呼叫的方法與引數。3.tomcat需要根據請求呼叫的方法,動態地載入方法所在的類,完成類的例項化並通過該例項獲得需要的方法最終將請求傳入方法執行。4.將結果返回給客戶端 jsp ...