2011-08-10 44 views
0

到现在为止,我想知道这两者之间的区别。我一直使用实例方法,但不知道它背后的含义。任何人都可以用最简单的方式解释吗?谢谢。类方法和实例方法的说明

+0

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

+0

感谢您的链接。我看到的是java。虽然解释可能是相同的。我正在寻找目标。谢谢! –

回答

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

是的,我读了你的链接。但我仍然不明白。我可以说Class方法只能在自己的类中调用方法吗?那就是我在你的代码中看到的。 –

0

在没有创建类的实例的情况下,可以使用良好的类方法。 由于您没有此类的实例,因此您不能使用任何类实例变量。

例如:

@implementation MyStringHelper 


@synthesize lastChecked; 

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

因此,你可以调用这个样:

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

但你不能使用属性latChecked,因为这将需要MyStringHelper类的一个实例。