Печать идентификатора экземпляра к NSLog?

Отражение может быть и было реализовано в C++ прежде.

Это не собственная функция C++, потому что это имеет большую стоимость (память и скорость), что should'nt быть установленным по умолчанию языком - язык является "максимальной производительностью, по умолчанию" ориентированной.

, Поскольку Вы не должны платить за то, в чем Вы не нуждаетесь, и поскольку ваши говорят, что себя этому было нужно больше в редакторах, чем в других приложениях, затем это должно быть реализовано только там, где Вам нужен он, и не "вынужденные" ко всему коду (Вам не нужно отражение обо всех данных, с которыми Вы будете работать в редакторе или другом подобном приложении).

14
задан fuzzygoat 9 September 2009 в 11:49
поделиться

2 ответа

Попробуйте следующее:

- (void)dealloc {
    NSLog(@"_deallocing: %@", self);
    [super dealloc];
}

Это выведет на консоль немного больше информации об объекте. В зависимости от класса вы получите адрес памяти и имя класса или что-то более подробное. Если вы хотите дать что-то более подробное в своих классах, переопределите этот метод и верните все, что хотите:

-(NSString *)description {
    return @"Something useful about this object";
}
7
ответ дан 1 December 2019 в 05:58
поделиться

Если вам конкретно нужен адрес памяти объекта (который, я полагаю, можно рассматривать как «идентификатор», если он не реализован в вашем классе), вы можете использовать это:

NSLog(@"deallocing %p", self);

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

54
ответ дан 1 December 2019 в 05:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: