標籤:
一、OC簡介
(一)、Objective-C與C的淵源
Objective-C誕生於 20 世紀 80 年代,由Brad Cox 發明,意在將流行的、可移植的 C 語言與優雅的 Smalltalk 語言結合在一起。
Objective-C 是 C 語言的一個擴充集,它以 C 語言為基礎,在語言中添加了一些微妙但意義重大的特性。
蘋果公司的 iphone 平台採用 Objective-C 做為 native language 的開發,Objective-C的核心是C語言的,並基於C語言實現OOP的一些特性。
Objective-C是對C語言的擴充,這和C++的前身 Better-c有很大的相似之處,Objective-C的新版本裡實現了和Java類似的記憶體回收機制,但基於iphone平台的資源限
制,iphone平台並不支援記憶體回收機制。
(二)、初識Objective-C
1、Cocoa的組成
蘋果公司將Cocoa、Carbon、QuickTime和OpenGL等技術作為框架組提供Cocoa組成部分有:
(1)、Foundation架構(有很多有用的,面向資料的低級類和資料結構);
(2)、Application Kit(也稱AppKit)架構(包含了所有的使用者介面對象和進階類,例如NS……),還有一個支援架構的套件,包括Core Animation和Core Image。
2、NSLog相當於C語言中的printf()
NSLog(@"hello Objective-C");//註:@是Objective-C在標準C語言基礎上添加的特徵之一,雙引號的字串前面有一個@,這表示引用的字串應該作為Cocoa的NSString元素處理 NSLog(@"are %d and %d different? %@",5,5,boolString(areTheyDifferent)); //注意%@:使用NSLog輸出任何對象值時,都會使用這個格式說明
3、BOOL使用8位儲存,YES定義為1,NO定義為0,大於1不為YES,跟標準C不同。
若不小心將一個長於1位元組的整型值賦給BOOL,則只截取低八位
二、Objective-C常見文法說明
(1)、標頭檔引用使用 #import “檔案名稱”或者 #import <檔案名稱>的形式以確保每個標頭檔僅被包含一次;
(2)、類聲明以 @interface 類名:繼承類 開頭,以 @end 結尾,類實現以@implementation 類名 開頭,以 @end 結尾;
(3)、執行個體方法,即成員方法,在方法名前面添加一個減號(-);類方法,在方法名前面添加一個加號(+);
(4)、類方法的調用格式為 [類名 類方法],成員方法調用格式為 [執行個體名 執行個體方法],這種模式在ObjC中被稱為訊息機制,[對象 訊息]即給對象發送了一個訊息,
產生的效果就是該對象調用了該類中定義的對應的執行個體方法。
(5)、關鍵字:關鍵字基本上都是以@開頭的,例如:@public、@private、@end 等
(6)、字串以@開頭
@"hello" // 這一個是OC 的字串"hello" // 這是是C語言的字串
(7)其他文法:
a、基礎資料型別 (Elementary Data Type):char 、int、float、double、BOOL(YES\NO)
b、nil:相當於C語言的NULL ,也就是0
c、基本語句:迴圈語句(do while 、while、for)、條件陳述式(if、if-else、switch)
d、注釋:// 和/*.......*/
三、OC開發過程(在終端上運行時)
1、編寫OC源檔案:.m、.c
2、編譯:cc -c xxx.m xxx.c
3、連結:cc xxx.o xxx.o -framework Foundation (只有用到了Foundation架構才需要加上-framework Foundation)
4、運行:./a.out
整體的流程就是:.m(源檔案)————編譯————》 .o(目標檔案)——連結———》a.out(可執行檔)
四、OC 中#import的作用和主標頭檔
OC中,#import的作用跟C語言中的#include一樣,都是拷貝檔案的內容,不同的是:#import可以自動防止檔案的內容被重複拷貝。
主標頭檔就是最主要的標頭檔,名字一般跟架構名稱一樣,包含了架構中的所有其他標頭檔,如:Foundation架構的主標頭檔名稱就是Foundation.h,OC中只需要包含
Foundation架構主標頭檔,就可以使用Foundation這個架構中所聲明的所有成員變數、方法以及實現的所有方法。
五、OC中類的設計
1、類的結構:類名、屬性、行為
類是對所有對象相同屬性的概況。
(1)類名命名的規範:
第一點:類名的第一個字母必須是大寫
第二點:不能有底線
第三點:當出現多個英文單詞時,用駝峰標識(即每個單字首大寫)
(2)完整的寫一個類,必須包含類的聲明與類的實現
類的聲明:@interface 類名
@end
類的實現:@implemention 類名
@end
(3)聲明是用於:聲明對象的屬性、行為
1>、OC中,成員變數的聲明必須寫在{}之內,方法(行為)的聲明必須寫在{}之外。
2>、聲明成員變數時,不可以對成員變數進行賦值的操作,只能聲明。
3>、聲明方法(行為)時要注意:只要是OC對象的方法,必須以減號 - 開頭,而且OC方法中任何資料類型都必須用小括弧()括住。
(4)類的使用的注意點
1>、在OC中,想執行一些行為,就寫上一個中括弧[行為執行者 行為名稱]
2>、利用類來建立對象
3>、類的調用:[所建立的對象 對象方法]
黑馬程式員--Objective-C之--OC的初步體驗