2011-08-10 11 views
0

これまで、私はこれら2つの違いを知りたいと思っています。私はいつもインスタンスメソッドを使用していましたが、その背後にある意味はわかりません。誰も簡単な方法で説明できますか?ありがとう。クラスメソッドとインスタンスメソッドの説明

+0

[Objective-C:Class vs Instance Methods?](http://stackoverflow.com/questions/1053592/objective-c-class-vs-instance-methods) – csano

+0

リンクありがとうございます。私が見たのはJavaだった。説明は同じですが。私はobj cを探していました。ありがとう! –

答えて

1

クラスメソッドは次のように、クラス自体に呼び出されます

[NSDate date]; 
// declared as: + (NSDate *)date; 

インスタンスメソッドは、実際のオブジェクトで呼び出されます。

NSDate *date = ...; 
[date timeIntervalSinceNow]; 
// declared as: - (NSTimeInterval)timeIntervalSinceNow; 

は、より多くの情報のためThe Objective-C Programming Languageガイドをお読みください。

+0

ありがとう、でも、私はちょうどj0kが送られたリンクを読む。私はまだ混乱していると感じています。 –

+0

あなたは何について混乱していますか?私は私の答えに入れたリンクを読んだのですか?クラス/インスタンスメソッドは多くのオブジェクト指向言語に共通しているので、一般的にOOPを把握するとよいでしょう。 – jtbandes

+0

さて、私はあなたのリンクを読んでいます。しかし、まだ私はまだ理解していません。クラスメソッドは、自分のクラス内のメソッドだけを呼び出すことができると言うことができますか?それは私があなたのコードで見ているものです。 –

0

クラスのインスタンスを作成せずにウェルクラスのメソッドを使用できます。 このクラスのインスタンスがないため、クラスインスタンス変数を使用することはできません。

例:

if ([MyStringHelper checkIfEmptyString:@"NotEmprty"]) { 
// do something 
} 

しかし、これは MyStringHelperクラスのインスタンスが必要になりますので、あなたがプロパティ latCheckedを使用することはできません。

@implementation MyStringHelper 


@synthesize lastChecked; 

+ (BOOL) checkIfEmptyString:(NSString *)checkString { 
    return ([checkString length] == 0); 
} 
@end 

したがって、あなたがこのように呼び出すことができます。

関連する問題