В файле заголовка NSObject.h, я видел это методобъяснить, как метод описания работы в классе NSObject
+ (NSString *)description;
Я знал, что знак «+» перед метод показывает, что это метод класса
Вот вся моя программа
#import <Foundation/Foundation.h>
@interface A : NSObject
@end
@implementation A
@end
int main(int argc, const char * argv[])
{
@autoreleasepool {
A * aObj = [A new];
NSLog(@"%@",[A description]);//o/p: A
NSLog(@"%@",[aObj description]);//o/p: <A: 0x10010f5a0>
}
return 0;
}
Я использовал метод описания как с классом, а с его экземпляр и я получил о/р, а также. почему я не получил ни одной ошибки или предупреждения при использовании метода класса с помощью экземпляра, особенно в этом случае
[aObj description];//why this piece of code is working fine
Спасибо заранее
технически, это тот же метод. Метакласс также наследуется от 'NSObject'. – Sulthan
Согласен, но давайте останемся просто и просто притворимся, что есть два метода. По заданному вопросу, боюсь, было бы неплохо глубже проникнуть в детали метаклассов. Вот почему я предпочел бы остаться с двумя декларациями, достаточно самопонимая, чтобы ответить нашему другу. – Zaphod
Я не согласен, что было бы неплохо «слишком глубоко». Сунил - не единственный человек, который собирается прочитать вопрос или его ответы. – nhgrif