1. ホーム
  2. objective-c

[解決済み] クラスメソッドとインスタンスメソッドの違いは何ですか?

2022-03-23 16:44:57

質問

クラスメソッドとインスタンスメソッドの違いは何ですか?

インスタンスメソッドはアクセッサ(ゲッターとセッター)で、クラスメソッドはそれ以外の大部分なのでしょうか?

どのように解決するのですか?

他の回答が言うように、インスタンスメソッドはクラスのインスタンスを使用しますが、クラスメソッドはクラス名だけで使用することができます。 Objective-Cでは、このように定義されています。

@interface MyClass : NSObject

+ (void)aClassMethod;
- (void)anInstanceMethod;

@end

すると、このように使うことができる。

[MyClass aClassMethod];

MyClass *object = [[MyClass alloc] init];
[object anInstanceMethod];

クラスメソッドの実際の例として、多くのFoundationクラスの便利なメソッドである NSString 's +stringWithFormat: または NSArray 's +arrayWithArray: . インスタンスメソッドは次のようになります。 NSArray 's -count メソッドを使用します。