1.源文件對(duì)比
- C語(yǔ)言中常見(jiàn)源文件.h頭文件,.c文件
文件擴(kuò)展名 | 源類(lèi)型 |
---|---|
.h | 頭文件轧拄,用于存放函數(shù)聲明 |
.c | C語(yǔ)言源文件揽祥,用于實(shí)現(xiàn)頭文件中聲明的方法 |
- OC中的源文件.h頭文件,.m與.mm的實(shí)現(xiàn)文件
文件擴(kuò)展名 | 源類(lèi)型 |
---|---|
.h | 頭文件檩电,頭文件包含類(lèi)拄丰、方法、屬性的聲明俐末。 |
.m/.mm | 類(lèi)的實(shí)現(xiàn)文件料按,參與編譯的文件,用來(lái)實(shí)現(xiàn)類(lèi)中聲明的方法 |
—
2.關(guān)鍵字對(duì)比
- C語(yǔ)言的關(guān)鍵字都可以在OC源程序中使用
- OC新增的關(guān)鍵字在使用時(shí),注意部分關(guān)鍵字以"@“開(kāi)頭
3.數(shù)據(jù)類(lèi)型對(duì)比
- C語(yǔ)言數(shù)據(jù)類(lèi)型
- OC數(shù)據(jù)類(lèi)型
類(lèi)型 | 描述 |
---|---|
BOOL | 只有兩個(gè)取值真和假 |
NSObject * | OC中的對(duì)象類(lèi)型 |
id | 動(dòng)態(tài)對(duì)象類(lèi)型卓箫,萬(wàn)能指針 |
SEL | 選擇器數(shù)據(jù)類(lèi)型 |
block | 代碼塊數(shù)據(jù)類(lèi)型 |
4.流程控制語(yǔ)句對(duì)比
- OC增強(qiáng)for循環(huán)(java载矿,C#都有對(duì)應(yīng)語(yǔ)法)
for (NSString * name in NSArray){
NSLog(@”%@”,name);
}
- 注意: 方法只能寫(xiě)在類(lèi)里面, 而函數(shù)可以寫(xiě)在任何地方
- 對(duì)象方法,使用對(duì)象調(diào)用的方法
- 類(lèi)方法烹卒,使用類(lèi)名調(diào)用的方法
對(duì)象方法
- (id)initWithString: (NSString * )name;
類(lèi)方法
+ (MyClass *)createMyClassWithString: (NSString *)name;
5.面向?qū)ο笮略稣Z(yǔ)法
- 屬性生成器
- @property
- @synthesize
//聲明屬性
@property (nonatomic,strong)NSString * name;
//合成屬性
@synthesize name = _name;
- 分類(lèi)
- 分類(lèi)與繼承
- 使用分類(lèi)擴(kuò)展類(lèi),無(wú)需子類(lèi)化
@interface NSString (MyNSString)
- (NSString *) encryptWithMD5;
@end
- 協(xié)議
- 使用協(xié)議聲明方法
- 協(xié)議類(lèi)似于C#闷盔,java中的接口
@protocol MyProtocol
- (void)myProtocolMethod;
@end
6.新增異常處理
用于處理錯(cuò)誤信息
-
格式:
- @try .... @catch .... @finally
示例
//創(chuàng)建對(duì)象car
Car *car = [Car new];
@try {
//調(diào)用一個(gè)沒(méi)有實(shí)現(xiàn)的方法
[car test];
}@catch (NSException *exception) {
NSLog(@"%@",exception.name);
}@finally {
NSLog(@"繼續(xù)執(zhí)行!\n");
}