重複の可能性:
Objective-C: クラス vs インスタンス メソッド?
iOS でメソッド名の前に「+」または「-」記号を付ける理由。署名ロジックについて教えてください。その違いは何ですか?
重複の可能性:
Objective-C: クラス vs インスタンス メソッド?
iOS でメソッド名の前に「+」または「-」記号を付ける理由。署名ロジックについて教えてください。その違いは何ですか?
それは兆候とは何の関係もありません。
+
メソッドがクラスメソッドであることを意味します。つまり、インスタンスではなく、クラス自体を操作します(つまり、そのスコープは)。他の多くの言語で対応するものはですstatic
。
-
メソッドがインスタンスメソッドであることを意味します。つまり、クラスのインスタンスを操作します。
`@interface MyClass : NSObject
{
}
+(id) someMethod; // declaration of class method
-(id) someMethod; // declaration of instance method
@end`
インスタンス メソッドはクラスのインスタンスに適用されるため、適用するオブジェクトが必要であり、呼び出し元のメンバーにアクセスできます。
一方、クラス メソッドはクラス全体に適用され、どのオブジェクトにも依存しません。
先頭の + 記号はクラス メソッドを示し、- 記号はインスタンス メソッドを意味します。
補足: これはここで尋ねるべきではありません - そのチュートリアルをもっと注意深く読んでください。
-
プレフィックスはインスタンス メソッドを示し、プレフィックス+
はクラス (または静的) メソッドを示します。
詳細については、この(および他の多くの) SO 投稿を参照してください。