[iPhone] Objective-C クラスメソッドとインスタンスメソッドを呼び出す

Objective-C でのメソッド、インスタンスメソッドとクラスメソッドの呼び出し方、使用例について、簡単に説明します。
 

Swift 4.1
Xcode 9.4

 

Objective-Cのメソッド

 

Object-Cのメソッドにはインスタンスメソッドとクラスメソッドの2つがあります。

    • クラスメソッド:
      • クラスをインスタンス化しなくても実行できるメソッド
      • 先頭にマイナス(+)をつけて定義
    • インスタンスメソッド:
      • クラスをインスタンス化して実行するメソッド
        • インスタンスの変数を使うことができる
      • 先頭にマイナス(-)をつけて定義

 

 

クラスメソッド

 

クラスメソッドはインスタンスとは関連していないため、インスタンスを生成して、インスタンス変装を利用する事ができないグローバル関数のようなものとなります。
 
簡単な例で確認するとわかりやすいので、XcodeでHello World などを実行する Single View Application のプロジェクトを作成します。
 
最初にクラスファイルをプロジェクトの中に作成します。Menuの [File] から
[New][File…] にある Objective-C Files File を選び(アイコンの位置は変わる事がありますので臨機応変に)
 

 
名前を決めて保存。保存先はプロジェクトフォルダー内に置きます。
 

 
同名のヘッダーファイルを作成します。
同じく[New][File…] にある Header File を選択して「Next」
 

 
プロジェクトにこのように MyClass.h MyClass.m のファイルが作成されています。
 

 
この MyClass に className というクラスメソッドを定義して、ViewController.m から呼び出してみます。
 
MyClass.h

 

MyClass.m

 
ViewControllerから呼び出して使う時は、メッセージ式を使ってメッセージを介して呼び出します。
 
ViewController.m

 
これを実行してLogを確認するとこのようになります。
 

 

インスタンスメソッド

 

インスタンスメソッドは別クラスなどからインスタンスを生成して利用します。
 
MyClass に myMethod を定義していきます。
 
MyClass.h

MyClass.m

 
ViewController.m からメソッドを呼び出します。
 
ViewController.m

 
デバッグログで「こんにちは山田です」とresultの値を表示しています。
 

 
 


誤字脱字、意味不明などのご意見は 謙: e-mail まで
ブックマークしておくと便利です このエントリーをはてなブックマークに追加
Twitter:


シェアする

  • このエントリーをはてなブックマークに追加

フォローする