ios基礎-小知識點收集(1)
不積跬步,無以至千裡;不積小流,無以成江海。----荀子
收集學習ios中的小知識點,每天進步一點點。
(一)@class和 #import
class:只聲明類,不會引入類檔案,加快編譯速度,防止類相互import出錯;在m中仍然需要import整個類檔案。
import匯入整個類檔案,在需要使用類中的變數、函數和協議的時候需要使用。
(二)靜態變數static、全域變數extern、局部變數、執行個體變數
static:為整類而非單個對象使用,隱藏封裝在類中,對外不可見。
靜態變數的優點:1、節省記憶體。靜態變數只儲存一處,但供所有對象使用。2、它的值是可以更新的。3、可提高時間效率。只要某個對象對靜態變數更新一次,所有的對象都能訪問更新後的值。
extern:在方法外部定義的變數,範圍是整個來源程式。全域變數不能在多個m檔案中定義。
局部變數:在方法中定義的變數,範圍是方法內。
執行個體變數:在類檔案方法外定義
(三)NSArray和NSMutableArray
首先,NSArray只能儲存Objective-C 對象,而不能儲存C語言中的基礎資料型別 (Elementary Data Type),比如:int,flot,指標等。 在使用NSArray時,需特別注意,必須以nil 結尾,以此來代表結束。
NSArray 建立的是靜態數組,一旦建立之後,就再也不能添加和刪除數組中的對象了,只能替換。
NSMutalbeArray 建立的是動態數組,可隨意添加或刪除數組中的元素。
(四)bool、BOOL和Boolean的區別
在objc.h檔案中如下定義
typedef signed char BOOL; // BOOL is explicitly signed so @encode(BOOL) == "c" rather than "C" // even if -funsigned-char is used.#define OBJC_BOOL_DEFINED#define YES (BOOL)1#define NO (BOOL)0
BOOL是個signed char類型,Boolean是unsigned char類型,bool是個整型。在oc架構中都是用BOOL,其他大部分地方是用bool。oc編程中常用BOOL。