1却舀、category 和 extension 的區(qū)別
分類有名字,類擴展沒有分類名字,是一種特殊的分類分類只能擴展方法(屬性僅僅是聲明,并沒真正實現(xiàn)),類擴展可以擴展屬性祟霍、成員變量和方法
2、define 和 const 常量有什么區(qū)別?
define 在預(yù)處理階段進(jìn)行替換,const 常量在編譯階段使用宏不做類型檢查,僅僅進(jìn)行替換,const 常量有數(shù)據(jù)類型,會執(zhí)行類型檢查define 不能調(diào)試,const 常量可以調(diào)試
define 定義的常量在替換后運行過程中會不斷地占用內(nèi)存,而 const 定義的常量存儲在數(shù)據(jù)段只有一份 copy,效率更高define 可以定義一些簡單的函數(shù),const 不可以
3、block 和 weak 修飾符的區(qū)別?
__block 不管是 ARC 還是 MRC 模式下都可以使用,可以修飾對象,也可以修飾基本數(shù)據(jù)類型__weak 只能在 ARC 模式下使用,只能修飾對象(NSString),不能修飾基本數(shù)據(jù)類型
block 修飾的對象可以在 block 中被重新賦值,weak 修飾的對象不可以
4倘是、static 關(guān)鍵字的作用
函數(shù)(方法)體內(nèi) static 變量的作用范圍為該函數(shù)體,該變量的內(nèi)存只被分配一次,因此其值在下次調(diào)用時仍維持上次的值;在模塊內(nèi)的 static 全局變量可以被模塊內(nèi)所用函數(shù)訪問,但不能被模塊外其它函數(shù)訪問;
在模塊內(nèi)的 static 函數(shù)只可被這一模塊內(nèi)的其它函數(shù)調(diào)用,這個函數(shù)的使用范圍被限制在聲明 它的模塊內(nèi);在類中的 static 成員變量屬于整個類所擁有,對類的所有對象只有一份拷貝;在類中的 static 成員函數(shù)屬于整個類所擁有,這個函數(shù)不接收 this 指針,因而只能訪問類的 static 成員變量