Объяснение методов класса и метода экземпляра - PullRequest
0 голосов
/ 10 августа 2011

До сих пор я хотел бы знать разницу между этими двумя. Я всегда использовал методы экземпляра, но понятия не имею, что за этим стоит. Кто-нибудь может объяснить самым простым способом? Спасибо.

Ответы [ 2 ]

1 голос
/ 10 августа 2011

Методы класса вызываются на сами классы, например:

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

Методы экземпляра вызываются на реальных объектах:

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

Прочтите руководство Язык программирования Objective-C для получения дополнительной информации.

0 голосов
/ 10 августа 2011

Ну, методы класса могут использоваться без создания экземпляра класса.Поскольку у вас нет экземпляра этого класса, вы не можете использовать какие-либо переменные экземпляра класса.

ex:

@implementation MyStringHelper


@synthesize lastChecked;

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

Таким образом, вы можете вызвать это как:

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

Но вы не можете использовать свойства latChecked, потому что для этого потребуется экземпляр класса MyStringHelper.

...