不積跬步,無以至千里;不積小流,無以成江海。----荀子
收集學習ios中的小知識點,每天進步一點點。
(一)@class和 #import
class:只聲明類,不會引入類文件,加快編譯速度,防止類相互import出錯;在m中仍然需要import整個類文件。
import導入整個類文件,在需要使用類中的變量、函數和協議的時候需要使用。
(二)靜態變量static、全局變量extern、局部變量、實例變量
static:爲整類而非單個對象使用,隱藏封裝在類中,對外不可見。
extern:在方法外部定義的變量,作用域是整個源程序。全局變量不能在多個m文件中定義。
局部變量:在方法中定義的變量,作用域是方法內。
實例變量:在類文件方法外定義
(三)NSArray和NSMutableArray
首先,NSArray只能存儲Objective-C 對象,而不能存儲C語言中的基本數據類型,比如:int,flot,指針等。 在使用NSArray時,需特別注意,必須以nil
結尾,以此來代表結束。
NSArray 創建的是靜態數組,一旦創建之後,就再也不能添加和刪除數組中的對象了,只能替換。
NSMutalbeArray 創建的是動態數組,可隨意添加或刪除數組中的元素。
(四)bool、BOOL和Boolean的區別
在objc.h文件中如下定義
<span style="font-family:SimSun;font-size:18px;">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</span>
BOOL是個signed char類型,Boolean是unsigned char類型,bool是個整型。在oc框架中都是用BOOL,其他大部分地方是用bool。oc編程中常用BOOL。