Идентификатор экземпляра экземпляра NSLog?
В методе dealloc для класса, как я могу распечатать идентификатор (или какой-либо другой уникальный идентификатор) для освобожденного экземпляра?
- (void)dealloc {
NSLog(@"_deallocing: ??");
[super dealloc];
}
Возможно ли это? Я просто пытаюсь получить немного больше отзывов в консоли в качестве помощи для обучения.
много благодарностей -gary -
Ответы
Ответ 1
Попробуйте следующее:
- (void)dealloc {
NSLog(@"_deallocing: %@", self);
[super dealloc];
}
Это приведет к дополнительной информации об объекте в консоли. В зависимости от класса вы получите либо адрес памяти, либо имя класса, либо что-то более подробное. Если вы хотите дать что-то более подробное в своих классах, переопределите этот метод и верните все, что хотите:
-(NSString *)description {
return @"Something useful about this object";
}
Ответ 2
Если вы специально хотите адрес памяти объекта (который, я полагаю, можно считать "идентификатором", если у вас его нет в вашем классе), вы можете использовать это:
NSLog(@"deallocing %p", self);
Это может быть полезно, если у вас есть несколько экземпляров определенного класса и они пытаются определить, что получает dealloc'd, когда.