不積跬步,無以至千裡;不積小流,無以成江海。----荀子
收集學習ios中的小知識點,每天進步一點點。
(一)@class和 #import
class:只聲明類,不會引入類文件,加快編譯速度,防止類相互import出錯;在m中仍然需要import整個類文件。
import導入整個類文件,在需要使用類中的變量、函數和協議的時候需要使用。
(二)靜態變量static、全局變量extern、局部變量、實例變量
static:為整類而非單個對象使用,隱藏封裝在類中,對外不可見。
靜態變量的優點: 1、節省內存。靜態變量只存儲一處,但供所有對象使用。 2、它的值是可以更新的。 3、可提高時間效率。只要某個對象對靜態變量更新一次,所有的對象都能訪問更新後的值。extern:在方法外部定義的變量,作用域是整個源程序。全局變量不能在多個m文件中定義。
局部變量:在方法中定義的變量,作用域是方法內。
實例變量:在類文件方法外定義
(三)NSArray和NSMutableArray
首先,NSArray只能存儲Objective-C 對象,而不能存儲C語言中的基本數據類型,比如: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