Мне нужна помощь в понимании фрагмента кода ниже. В частности, я хотел бы знать, почему ключевое слово copy
используется, когда methodB
вызывает methodA
.
+ (NSString*) methodA {
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentsDirectory,
NSUserDomainMask, YES);
return [paths objectAtIndex:0];
}
+ (NSString*) methodB:(NSString*)stringToAppend {
static NSString *s = nil;
if(!s) s = [[self methodA] copy];
return [s stringByAppendingString:stringToAppend];
}
Примечание: очевидно, что методы класса могут вызывать другие методы класса, используя self
(тогда как методы экземпляра должны вызывать методы класса, подобные этому [ClassName classMethodName];