oc和c語(yǔ)言對(duì)比


1.源文件對(duì)比

  • C語(yǔ)言中常見(jiàn)源文件.h頭文件,.c文件
文件擴(kuò)展名 源類型
.h 頭文件,用于存放函數(shù)聲明
.c C語(yǔ)言源文件,用于實(shí)現(xiàn)頭文件中聲明的方法
  • OC中的源文件.h頭文件,.m與.mm的實(shí)現(xiàn)文件
文件擴(kuò)展名 源類型
.h 頭文件,頭文件包含類、方法、屬性的聲明。
.m/.mm 類的實(shí)現(xiàn)文件,參與編譯的文件,用來(lái)實(shí)現(xiàn)類中聲明的方法

2.關(guān)鍵字對(duì)比

  • C語(yǔ)言的關(guān)鍵字都可以在OC源程序中使用
  • OC新增的關(guān)鍵字在使用時(shí),注意部分關(guān)鍵字以"@“開(kāi)頭

3.數(shù)據(jù)類型對(duì)比

  • C語(yǔ)言數(shù)據(jù)類型
  • OC數(shù)據(jù)類型
類型 描述
BOOL 只有兩個(gè)取值真和假
NSObject * OC中的對(duì)象類型
id 動(dòng)態(tài)對(duì)象類型,萬(wàn)能指針
SEL 選擇器數(shù)據(jù)類型
block 代碼塊數(shù)據(jù)類型

4.流程控制語(yǔ)句對(duì)比

  • OC增強(qiáng)for循環(huán)(java,C#都有對(duì)應(yīng)語(yǔ)法)
for (NSString * name in NSArray){
    NSLog(@”%@”,name);
}
  • 注意: 方法只能寫(xiě)在類里面, 而函數(shù)可以寫(xiě)在任何地方
    • 對(duì)象方法,使用對(duì)象調(diào)用的方法
    • 類方法,使用類名調(diào)用的方法
對(duì)象方法
- (id)initWithString: (NSString * )name;

類方法
+ (MyClass *)createMyClassWithString: (NSString *)name;

5.面向?qū)ο笮略稣Z(yǔ)法

  • 屬性生成器
    • @property
    • @synthesize
//聲明屬性
@property (nonatomic,strong)NSString * name;

//合成屬性
@synthesize name = _name;
  • 分類
    • 分類與繼承
    • 使用分類擴(kuò)展類,無(wú)需子類化
@interface NSString (MyNSString)

- (NSString *) encryptWithMD5;

@end
  • 協(xié)議
    • 使用協(xié)議聲明方法
    • 協(xié)議類似于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");
}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,291評(píng)論 25 708
  • 2、#import和#include的區(qū)別是什么?#import<> 跟 #import""有什么區(qū)別? .#im...
    AlanGe閱讀 397評(píng)論 0 0
  • *面試心聲:其實(shí)這些題本人都沒(méi)怎么背,但是在上海 兩周半 面了大約10家 收到差不多3個(gè)offer,總結(jié)起來(lái)就是把...
    Dove_iOS閱讀 27,652評(píng)論 30 472
  • 譯者:營(yíng)銷漏斗的原理其實(shí)很好理解,當(dāng)執(zhí)行起來(lái)卻困難重重,本文作者為你展現(xiàn)了如何才能解決這些問(wèn)題。 如何通過(guò)漏斗管理...
    TsingGuo閱讀 2,377評(píng)論 0 1
  • 今天晚上的繪本是爸爸讀的,其中的小威向前沖,爸爸還有點(diǎn)別扭,也不是第一次接觸性啟蒙了,還好在我的催促中完成了! 牛...
    幽香_5126閱讀 175評(píng)論 0 0

友情鏈接更多精彩內(nèi)容