1. Objective-C簡介
80年代出現 , C + Smalltalk == OC
OC ==> Objective-C 2.0
NeXT : Unix + UI ==> Mac OS ==> iOS
庫和工具 ==> Cocoa
iOS開發庫和工具 ==> Cocoa Touch
2. 編譯器
gcc: GNU C Compile
LLVM : Apple LLVM Compile 4.1
clang : 指令行編譯器
3.各種源程式檔案的字尾名(擴充名)
.c C語言源程式檔案
.cpp .ccC++語言
.m Objective-C
.mm Objective-C++
.h 頭檔案
.sh Shell腳本
--------------------------------------------
.a Unix/Linux 靜态庫檔案
.so Unix/Linux 共享庫(動态庫)檔案
.o object檔案,編譯生成的二進制檔案
4.第一個 OC程式
#import <Foundation/Foundation.h> //#include
Foundation架構(framework 庫)
NSLog : 日志輸出函數
5.布爾值
C: 用int來當布爾類型使用
0代表邏輯假,非0代表邏輯真。
bool
OC:
BOOL YES, NO
YES是1, NO是0,對BOOL變量盡量不要賦其他的值,最好隻給YES/NO.
6. 面向對象程式設計
6.1 基本概念
用解決現實中問題的辦法來解決計算機問題。
6.2 對象 (Object)
Anything is Object
現實中是客觀上的存在。程式中其實是由類建立出來的一片記憶體空間。
對象的特征:
能幹什麼 方法
有什麼 屬性
6.3 類
類型,是一種對客觀事物的抽象,是一種主觀上的認識。
程式中的類是對現實中的對象的一種抽象。是程式員定義的一種資料類型(自定義類型), 是産生對象的模型。
類==>産生對象
類中有什麼:
屬性的定義 : 用變量來表示,叫執行個體變量
方法的定義 : 用函數來表示,叫消息
6.4 定義類
@interface 類名
{
//屬性的定義
變量類型 變量名;//執行個體變量
}
//方法的聲明
-(傳回值類型) 方法名 : 參數1 : 參數2;
@end
@implementation 類名
//方法的定義
-(傳回值類型) 方法名 : 參數1 : 參數2
{
//做事的代碼
}
@end
7.建立對象
7.1 OC中對象隻能被建立在堆中。
7.2 NSObject類中,有建立對象的方法。
隻有通過繼承,才可以擷取NSObject中的建立對象的方法。
@interface MyFirstClass : NSObject
@end
7.3 之後,隻要給類發消息alloc,就可以建立出對象來。
發送消息的方式如下:
[類 消息]; ==>[MyFirstClass alloc];
7.4 給對象發消息
[對象 消息]; ==>[first show: 100];
-開頭的方法是執行個體方法,隻響應對象的消息
+開頭的方法是類方法,響應給類發的消息
7.5 執行個體變量
即不是全局變量,也不是局部變量。
每個執行個體(對象)都有一份,在類中相當于全局,任何位置(所有的執行個體方法)都可以通路。
類方法中不可以通路執行個體變量
8. 多檔案程式設計
一個類兩個檔案,一個頭檔案xxxx.h,頭檔案中儲存類的interface部分。另一個是實作檔案xxxx.m.實作檔案中儲存implementation部分,當然得#import "xxxx.h".
如果在程式的某個地方,要使用一個類,就需要該檔案#import類的頭檔案。
附:
class method : 類方法
instance method : 執行個體方法
instance variable : 執行個體變量