ocとc言語の対比

1877 ワード

1.ソースファイルの比較
  • C言語でよく見られるソースファイル.hヘッダファイル,.cファイル
  • ファイル拡張子
    ソースタイプ
    .h
    関数宣言を保存するヘッダー・ファイル
    .c
    C言語ソースファイル、ヘッダファイルで宣言する方法を実現する
  • OCのソースファイル.hヘッダファイル,.m与.mmの実装ファイル
  • ファイル拡張子
    ソースタイプ
    .h
    クラス、メソッド、プロパティの宣言を含むヘッダファイル.
    .m/.mm
    クラスの実装ファイル、コンパイルに参加するファイル、クラスで宣言されたメソッドを実装するために使用されます.

    2.キーワードの比較
  • C言語のキーワードは、OCソースプログラムで
  • を使用できます.
  • OCに追加されたキーワードを使用する場合、一部のキーワードは「@」で始まる
  • 3.データ型比較
  • C言語データ型
  • OCデータ型
  • を選択します.
    説明
    BOOL
    真と偽の値を取るのは2つしかありません
    NSObject *
    OCのオブジェクトタイプ
    id
    ダイナミックオブジェクトタイプ、万能ポインタ
    SEL
    セレクタデータ型
    block
    コードブロックデータ型
    4.プロセス制御文の比較
  • OC強化forループ(java,C#ともに対応文法)
  • for (NSString * name in NSArray){
        NSLog(@”%@”,name);
    }
    
  • 注意:メソッドはクラスにしか書けませんが、関数はどこにでも書けます.
  • オブジェクトメソッド、オブジェクト呼び出しメソッド
  • を使用
  • クラスメソッド、クラス名呼び出しメソッド
  • を使用
        
    - (id)initWithString: (NSString * )name;
    
       
    + (MyClass *)createMyClassWithString: (NSString *)name;
    

    5.オブジェクト向けの新規構文
  • プロパティジェネレータ
  • @property
  • @synthesize

  • //    
    @property (nonatomic,strong)NSString * name;
    
    //    
    @synthesize name = _name;
    
  • 分類
  • 分類と継承
  • 分類拡張クラスを使用し、サブクラス化
  • を必要としない
    @interface NSString (MyNSString)
    
    - (NSString *) encryptWithMD5;
    
    @end
    
  • プロトコル
  • プロトコル宣言メソッド
  • を使用
  • プロトコルはC#,javaのインタフェース
  • と類似している.
    @protocol MyProtocol
    
    - (void)myProtocolMethod;
    
    @end
    

    6.新規異常処理
  • エラー情報を処理するための
  • .
  • 形式:
  • @try .... @catch .... @finally

  • //    car
    Car *car = [Car new];
    @try {
    //           
    [car test];
     }@catch (NSException *exception) {
           NSLog(@"%@",exception.name);
    }@finally {
     NSLog(@"    !
    "); }