目錄
- 源文件對(duì)比
- 關(guān)鍵字對(duì)比
- 數(shù)據(jù)類型對(duì)比
- 流程控制語句對(duì)比
- 函數(shù)(方法)定義和聲明對(duì)比
- 面相對(duì)象新增特性
- 面向?qū)ο笮略稣Z法
- 新增異常處理
1.源文件對(duì)比
- C語言中常見源文件.h頭文件,.c文件
文件擴(kuò)展名 | 源類型 |
---|---|
.h | 頭文件,用于存放函數(shù)聲明 |
.c | C語言源文件嫌套,用于實(shí)現(xiàn)頭文件中聲明的方法 |
- OC中的源文件.h頭文件,.m與.mm的實(shí)現(xiàn)文件
文件擴(kuò)展名 | 源類型 |
---|---|
.h | 頭文件磕仅,頭文件包含類、方法浊洞、屬性的聲明把曼。 |
.m/.mm | 類的實(shí)現(xiàn)文件,參與編譯的文件摄乒,用來實(shí)現(xiàn)類中聲明的方法 |
2.關(guān)鍵字對(duì)比
- C語言的關(guān)鍵字都可以在OC源程序中使用
- OC新增的關(guān)鍵字在使用時(shí),注意部分關(guān)鍵字以"@"開頭
3.數(shù)據(jù)類型對(duì)比
- C語言數(shù)據(jù)類型

- OC數(shù)據(jù)類型

類型 | 描述 |
---|---|
BOOL | 只有兩個(gè)取值真和假 |
NSObject * | OC中的對(duì)象類型 |
id | 動(dòng)態(tài)對(duì)象類型,萬能指針 |
SEL | 選擇器數(shù)據(jù)類型 |
block | 代碼塊數(shù)據(jù)類型 |
- OC中的類
- Objective-C是一種面向?qū)ο蟮恼Z言,定義類是它的基本能力残黑。
- 那什么是類呢馍佑?類是用來描述對(duì)象的,它是一系列方法和屬性的集合
- Objective-C的類聲明和實(shí)現(xiàn)包括兩個(gè)部分:接口部分和實(shí)現(xiàn)部分梨水。
- 想要定義方法也就C語言中的函數(shù)拭荤,那么就必須先有類的存在
4.流程控制語句對(duì)比
- C語言中使用的流程控制語句OC中都可以應(yīng)用
if 語句
switch語句
while語句
dowhile語句
for語句
break關(guān)鍵字
continue關(guān)鍵字
增強(qiáng)for循環(huán),用于快速迭代數(shù)組或者集合
C語言for循環(huán)
for (int i = 0; i < 10; i++){
printf(“%d”,i);
}
- OC增強(qiáng)for循環(huán)
for (NSString * name in NSArray){
NSLog(@”%@”,name);
}
5.函數(shù)(方法)定義和聲明對(duì)比
-
C語言中函數(shù)的聲明和實(shí)現(xiàn)
- 函數(shù)聲明:int sum(int a,int b);
- 函數(shù)實(shí)現(xiàn):int sum(int a,int b){ return a+b; }
-
OC中的方法
- 方法聲明:- (int)sum:(int) a andB:(int) b;
- 方法實(shí)現(xiàn):- (int)sum:(int) a andB:(int )b{ return a+b; }
-
注意: 方法只能寫在類里面, 而函數(shù)可以寫在任何地方
- 對(duì)象方法,使用對(duì)象調(diào)用的方法
- 類方法疫诽,使用類名調(diào)用的方法
對(duì)象方法
- (id)initWithString: (NSString * )name;
類方法
+ (MyClass *)createMyClassWithString: (NSString *)name;
6.面相對(duì)象新增特性
- 封裝性
- 繼承性
-
多態(tài)性
7.面向?qū)ο笮略稣Z法
- 屬性生成器
- @property
- @synthesize
//聲明屬性
@property (nonatomic,strong)NSString * name;
//合成屬性
@synthesize name = _name;
- 分類
- 分類與繼承
- 使用分類擴(kuò)展類,無需子類化
@interface NSString (MyNSString)
- (NSString *) encryptWithMD5;
@end
- 協(xié)議
- 使用協(xié)議聲明方法
- 協(xié)議類似于C#舅世,java中的接口
@protocol MyProtocol
- (void)myProtocolMethod;
@end
- Fundation框架
- 創(chuàng)建和管理集合旦委,如數(shù)組和字典
- 訪問存儲(chǔ)在應(yīng)用中的圖像和其他資源
- 創(chuàng)建和管理字符串
- 發(fā)布和觀察通知
- 創(chuàng)建日期和時(shí)間對(duì)象
- 操控URL流
- 異步執(zhí)行代碼
8.新增異常處理
用于處理錯(cuò)誤信息
-
格式:
- @try .... @catch .... @finally
示例
//創(chuàng)建對(duì)象car
Car *car = [Car new];
@try {
//調(diào)用一個(gè)沒有實(shí)現(xiàn)的方法
[car test];
}@catch (NSException *exception) {
NSLog(@"%@",exception.name);
}@finally {
NSLog(@"繼續(xù)執(zhí)行!\n");
}