クラスメソッドとインスタンスメソッドについて
objective-cでは、クラスメソッドとインスタンスメソッドがあります。
その違いは何なんでしょう。
て本に書いてあって、見れば分かるかもしれませんが、
その使い分けはどのようにしたらいいのだろうか?
まず基本的な違いですが、
クラスメソッドは、インスタンスを生成せずに他のクラスから直接使用できます。
その代わり、インスタンスを生成しないので、インスタンス変数、インスタンスメソッドを使うことはできません。
インスタンスメソッドは、インスタンスを生成して呼び出します。
例)クラスメソッド
//メソッド @implementation HogeClass + (void)setString{ NSLog(@"クラスメソッド:"); } //メソッドを呼び出す [HogeClass setString];
例)インスタンスメソッド
//メソッド @implementation HogeClass - (void)setString { NSLog(@"インスタンスメソッド:"); } //メソッドを呼び出す HogeClass *testObj = [[HogeClass alloc] init]; [testObj setString];
以上の事から、