iOS - OC 基本語法


1、常見文件擴展名

	.c               C 語言源文件
	.cc、.cpp        C++ 語言源文件
	.m               Objective-C 源文件
	.mm              Objective-C++ 源文件
	.h               頭文件
	.pl              Perl 源文件
	.o               Object(編譯后的)文件
	    
	.app             可運行的應用程序(相當於 windows 中的 .exe)
	.dmg             OS X 上的光盤文件壓縮包(相當於 windows 中的 ISO)
	.pkg             OS X 應用程序安裝包(相當於 windows 中的 exe\msi 等)
	.ipa             iOS 應用程序安裝包(安裝到 iPhone\iPad 等設備上面)
	    
	.xcodeproj       Xcode 的項目文件(雙擊可直接打開整個項目)
	.xcworkspace     Xcode 工作空間文件
	.plist           用於儲存用戶設置(類似於 windows 下的 .ini)
	.bundle          可認為是壓縮后的文件夾(一種壓縮文件)

2、命名規范

  • 按照約定,類名以大寫字母開頭,盡管沒有要求這么做。

  • 實例變量、對象以及方法的名稱,通常以小寫字母開頭。為了使程序具有可讀性,名稱中要用大寫字母表示新單詞的開頭。

  • 一些程序員還使用下划線作為單詞的分隔符。

  • 在 OC 中小寫字母和大寫字母是有區別的。

3、OC 數據類型

	char :	字符型
	int  :	整型    %zi 	可打印無符號整形(NSUInteger)數據。%li  可打印有符號整形(NSInteger)數據。

	float  : 浮點型
	double : 雙浮點型

	BOOL:	布爾型    YES、NO

	id  :	通用的對象類型,可以存儲任何類型的對象,從某種意義說,它是一般對象類型。

				保存 OC 中任意對象的指針(void *): 泛型指針,保存任意類型的指針變量。
				類型轉換運算符通常用於將一般 id 類型的對象轉換成特定類的對象。

	instancetype :
				instancetype 在類型表示上,跟 id 一樣,可以表示任何對象類型。
				instancetype 只能用在返回值類型上,不能像 id 一樣用在參數類型上。
				instancetype 比 id 多一個好處:編譯器會檢測 instancetype 的真實類型。

	enum :枚舉。在 OC 中可以將一系列值指派給一個變量。
				如:enum flag{false, true};

				要聲明一個枚舉類型的變量,仍需要用到關鍵字 enum,之后是枚舉的類型名,最后是變量序列。
					如:enum flag endOfData = true;
					
				定義枚舉數據類型時,可以省略數據類型的名稱,定義類型可以將變量聲明為特定枚舉數據類型中的一個。
					如:enum {false, true} endOfData;
		
				枚舉標識符可以共享相同的值。
					如:enum boolean {no = 0, false = 0, yes = 1, true = 1};

				OC 編譯器實際上將枚舉標識符作為整形常量來處理。

	typedef:定義數據類型。
	
				OC 允許編程者為數據類型另外指派一個名稱。在這種情況下使用 typedef 語句的主要好處是增加了變量定義的可讀性。

4、運算符

  • 1)位運算:位運算符可處理任何類型的整形值,但不能處理浮點值。

    • 按位與運算符:經常用於屏蔽預算,該運算符可以輕易的將數據項的特定位設置為 0 。
    • 按位或運算符:通常稱為按位 OR,用於將數據項的特定位設為 1 。
    • 按位異或運算符:通常稱為 XOR,不同為 1 ,相同為 0 。
    • 一次求反運算符:對運算數的位翻轉。
    • 左移位運算符:超出數據項的高位的位將丟失,而從低位移入的值總為 0 。
    • 右移位運算符:從值的低位移出的位將丟失。把無符號的值向右移位總是左側移入 0 。對有符號的值而言,如果符號位是 0(表示該值為正的),將移入 0;
      如果符號位是 1,那么在一些計算機上將移入 1(算數右移),而其他計算機上將移入 0(邏輯右移)。
  • 2)運算函數:

    • 開平方函數:

      	double sqrt(double);
      

5、表達式

  • 1)循環結構

    	for          語句	
    	while        語句		
    	do … while   語句	
    	for … in     語句	
    
    	break
    	continue
    
  • 2)選擇結構

    	if         語句
    	switch     語句
    
    	… ? … :    條件運算語句,從右往左結合,可多極嵌套使用。
    
    				Xcode 支持如下多級運算符的非 ANSI 擴展語句:
    						condition ? : expression 在這個語句中對 condition 求值,若為 YES 則返回值為 condition 。
    					若 condition 值為 NO ,則返回值為 expression 。
    

6、程序編譯

  • 1)預處理

    • 預處理程序實際上是在分析 OC 程序之前先處理這些語句。預處理程序語句使用井號(#)標記,這個符號必須是一行中的第一個非空格字符。

      	#define :給符號名稱指定程序常量
      	#import :文件包含
      	#ifdef、#endif、#else、#ifndef、#if、#elif :條件編譯
      	#undef :消除特定名稱的定義
      

7、堆和棧的區別

  • 堆需要用戶手動釋放內存,而棧則是編譯器自動釋放內存


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM