objective-c入門

2715 ワード

一.objective-c概要
Objective-Objective-CはC言語の厳格なスーパーセットである--いかなるC言語プログラムも変更せずにObjective-Cコンパイラを直接通過することができ、Objective-CでC言語コードを使用するのも完全に合法である.Objective-CはC言語に覆われた薄い層として記述されている.Objective-Cの本来の意味はC言語本体にオブジェクト向けの特性を加えることであるからである.
拡張子
コンテンツの種類
.h
ヘッダファイル.ヘッダファイルには、クラス、タイプ、関数、定数の宣言が含まれます.ヘッダファイルが含まれている場合、#importオプションと#includeオプションはまったく同じですが、同じファイルが一度だけ含まれることを保証できます.
.m
ソースファイル.これは、Objective-CおよびCコードを含む典型的なソースファイル拡張子です.
.mm
ソースファイル.このような拡張子を持つソースファイルには、Objective-CおよびCコードの他にC++コードを含めることができる.この拡張子は、Objective-CコードでC++クラスまたはプロパティを使用する必要がある場合にのみ使用します.
二.構文
1.文字列
ほとんどのObjective-Cでは、C言語スタイルの文字列は使用されません.逆に、ほとんどのフレームワークは文字列をNSStringオブジェクトに渡します.NSStringクラスは文字列のクラスパッケージを提供し、任意の長さの文字列を保存する内蔵メモリ管理メカニズム、Unicode、printfスタイルをサポートするフォーマットツールなど、あなたが望むすべての利点を含んでいます.
NSString* myString = @"My Stringn"; 
NSString* anotherString = [NSString stringWithFormat:@"%d %s", 1, @"String"];

2.クラス
Objective-Cのクラス仕様説明には、定義(interface)とインプリメンテーション(implementation)の2つのセクションが含まれています.定義(interface)セクションには、クラス宣言とインスタンス変数の定義、およびクラス関連のメソッドが含まれています.インプリメンテーション(implementation)セクションには、クラスメソッドの実際のコードが含まれています.
  • interface
    定義セクションでは、クラスの名前、データ・メンバー、メソッドを明確に定義します.キーワード@interfaceで始まり、@endで終わり
    @interface MyObject : NSObject { 
        int memberVar1; //      
        id  memberVar2; 
    } 
    +(return_type) class_method; //     
    -(return_type) instance_method1; //      
    -(return_type) instance_method2: (int) p1; 
    -(return_type) instance_method3: (int) p1 andPar: (int) p2; 
    @end
    //      +/-         :  (+)     (class method),          , C++      (static member function)  。  (-)         (instance method)。
    //Objective-C         ,      (:)      ,   C               。Objective-C               ,              ,         。    RGB      :
     - (void) setColorToRed: (float)red Green: (float)green Blue:(float)blue; /*     */
     [myColor setColorToRed: 1.0 Green: 0.8 Blue: 0.2]; /*     */
    //        setColorToRed:Green:Blue:。           float     ,     , ,   。
  • Implementation
    実装ブロックには、公開メソッドの実装、およびプライベート変数およびメソッドの定義が含まれます.キーワード@implementationをブロックの先頭とし、@endの末尾にします.
    @implementation MyObject {
      int memberVar3; //      
    }
    +(return_type) class_method {
        ... //method implementation
    }
    -(return_type) instance_method1 {
        ...
    }
    -(return_type) instance_method2: (int) p1 {
        ...
    }
    -(return_type) instance_method3: (int) p1 andPar: (int) p2 {
        ...
    }
    @end
  • オブジェクトの作成
    Objective-Cオブジェクトの作成にはallocとinitの2つのメッセージが必要です.allocの役割はメモリの割り当てであり、initは初期化オブジェクトである.
    MyObject * my = [[MyObject alloc] init];
    MyObject * my = [MyObject new];