每天10道面試題2016.6.26

1、兩段代碼共存于一個文件,編譯時有選擇的編譯其中的一部分,請問如何實現?

答案:條件預編譯:

#if
#else
#end

#ifdef aaa  如果被定義過就執行
#else
#end
#ifndef aaa  如果沒有被定義則執行
#else
#endif
確保代碼只被執行一次```

**2、.malloc()與 calloc()的區別?**

.malloc(size)
calloc(size*n)
區別 malloc分配內存空間會有系統殘留值,calloc分配空間每次都會初始化為0

calloc 可以一次性分配多個內存空間
http://blog.csdn.net/firecityplans/article/details/4490124/```

3、如何引用一個已經定義過的全局變量

(1)引用頭文件的方式
(2)使用extern關鍵字
注意:
(1)如果是頭文件的方式,在用全局變量的時候,把變量名字寫錯了,在編譯的時候就會報錯。
(2)如果是extern關鍵字聲明,如果把全局變量的名字寫錯了,在編譯的時候不會報錯,在連接的時候報錯。
延伸:
全局變量:static exetern 無修飾符
局部變量:auto  static register 無修飾符
生命周期:
常量:
(操作系統)
棧:由操作系統自動分配。存放函數的參數值,局部變量的值
堆:一般由程序員分配釋放,若程序員不釋放,程序結束時可能由OS回收,分配方式倒是類似于鏈表。

4、請簡述沙盒中3個文件夾的作用。

(1)、什么是沙盒?
iOS應用程序只能在為該程序創建的文件系統中讀取文件,不可以去其它地方訪問,此區域被成為沙盒。
所以所有的非代碼文件都要保存在此,例如圖像,圖標,聲音,映像,屬性列表,文本文件等。
(2)、沙盒中3個文件夾的作用。
Document:存儲較大數據  會同步到iTunes
Library: 存儲較大數據  不會同步到iTunes(Library下的Caches文件夾:存放緩存文件)
Temp :存儲零時文件
iPhone在重啟時,會丟棄所有的tmp文件。
(3)、獲取總目錄

5、怎么樣啟動一個新的線程,子線程怎么刷新UI?

三種方法創建新的線程:
(1)NSThread
需要管理線程的生命周期、同步、加鎖問題,這會導致一定的性能開銷
有類方法和實例方法
實例方法需要自己開啟線程。類方法不需要手動開啟線程
// 初始化線程  
NSThread *thread = [[NSThread alloc] initWithTarget:self selector:@selector(run) object:nil];  
// 設置線程的優先級(0.0 - 1.0,1.0最高級)  
thread.threadPriority = 1;  
// 開啟線程  
[thread start]; 
參數解析:
selector :線程執行的方法,這個selector最多只能接收一個參數
target :selector消息發送的對象
argument : 傳給selector的唯一參數,也可以是nil
(2)NSOperation 
  //創建一個操作隊列
    NSOperationQueue *opQueue=[[NSOperationQueue alloc]init];
    操作隊列
  一、添加新線程  NSInvocationOperation *op1=[[NSInvocationOperation alloc]initWithTarget:self selector:@selector(op1Action) object:nil];
   添加到隊列里面
     [opQueue addOperation:op1];
二、    用代碼塊的形式開辟一個新的線程
    [opQueue addOperationWithBlock:^{
            NSLog(@"4子線程=%@", [NSThread currentThread]);
    }];
-(void)op1Action
{
    NSLog(@"1子線程=%@", [NSThread currentThread]);
}
(3)GCD```

| |同步執行|異步執行|
|:---|:---|
|串行隊列|當前線程,一個一個執行|  其他線程,一個一個執行
|并行隊列|  當前線程,一個一個執行|    開很多線程,一起執行
這些應該重新總結就先不寫了
**UI的刷新操作必須在主線程里面進程刷新**
**回到主線程的方法**
`1.dispatch_sync(dispatch_get_main_queue(), ^{   }); 
 2.performSelectorOnMainThread`
**6、類別和類擴展的區別。**

1.類別:對當前類的擴展
類別沒有屬性,只有方法
類別中的方法優先級比當前類的方法優先級高
2.類擴展:匿名類目
? 能為某個類附加額外的屬性,成員變量,方法聲明
? 一般的類擴展寫到.m文件中
? 一般的私有屬性寫到類擴展
? 使用格式:
@interface Mitchell()
屬性
方法
@end
分類: 分類的小括號必須要有名字
1.分類只能擴充方法。不能擴展屬性和成員變量(如果包含成員變量就會直接報錯)(可通過runtime添加)
2. 如果分類中聲明了一個屬性,那么分類只會生成這個屬性的set、get方法聲明,也就是不會有實現。
@interface 類名(分類名字)
方法聲明
@end
@implementation類名(分類名字)
方法實現
@end

**7、線程和進程有什么區別和聯系**

一個程序至少有一個進程,一個進程至少有一個線程。
進程:表示資源分配的基本單位,又是調度運行的基本單位。
線程:是進程中執行運算的最小單位,亦即執行處理機調度的基本單位。

同一進程中的多個線程共享代碼段(代碼和常量),數據段(全局變量和靜態變量),擴展段(堆存儲)。但是每個線程擁有自己的棧段,棧段又叫運行時段,用來存放所有局部變量和臨時變量。

**8、解釋一下KVC和KVO,什么是鍵-值,鍵路徑是什么?**

Key value coding, Key value observer.
Kvc 是路徑訪問的規范,kvo 是觀察某個變量的變化過程
KVO 可以觀察某個對象的變量變化過程,KVC 是滿足被觀察的編
碼規范。
KVC/KVO 類似于代理,通知中心。都是一種通訊方法。

**9、寫出float x 與“零值”比較的if語句**

if(fabs(x)<=0.000001)
與int類型做比較
if(x==0)
與BOOL
if(x)
與指針
if(x==NULL)(C語言的空)

**10、寫一個標準的宏定義MIN,比較輸入兩個參數并返回較小值**

define MIN(X,Y) ((X)<(Y)?(X): (Y)) (括號才是重點)

define是文本復制

寫出一年有多少秒

define YEAR_OF_SECOND ( 365 * 24 * 60 *60 )UL (UL是無符號長整形)

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,825評論 6 546
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,814評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,980評論 0 384
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 64,064評論 1 319
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,779評論 6 414
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 56,109評論 1 330
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 44,099評論 3 450
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,287評論 0 291
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,799評論 1 338
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,515評論 3 361
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,750評論 1 375
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,221評論 5 365
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,933評論 3 351
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,327評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,667評論 1 296
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,492評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,703評論 2 380

推薦閱讀更多精彩內容

  • 多線程、特別是NSOperation 和 GCD 的內部原理。運行時機制的原理和運用場景。SDWebImage的原...
    LZM輪回閱讀 2,026評論 0 12
  • ———————————————回答好下面的足夠了---------------------------------...
    恒愛DE問候閱讀 1,749評論 0 4
  • iOS面試小貼士 ———————————————回答好下面的足夠了------------------------...
    不言不愛閱讀 2,002評論 0 7
  • 史上最全的iOS面試題及答案 iOS面試小貼士———————————————回答好下面的足夠了----------...
    Style_偉閱讀 2,377評論 0 35
  • 文/檐鈴化語 01 今年全國卷的高考作文題目:請從一帶一路、大熊貓、廣場舞、中華美食、長城、共享單車、京劇、空氣污...
    檐鈴化語閱讀 387評論 0 4