Подтвердить что ты не робот

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

В методе dealloc для класса, как я могу распечатать идентификатор (или какой-либо другой уникальный идентификатор) для освобожденного экземпляра?

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

Возможно ли это? Я просто пытаюсь получить немного больше отзывов в консоли в качестве помощи для обучения.

много благодарностей -gary -

4b9b3361

Ответ 1

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

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

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

-(NSString *)description {
    return @"Something useful about this object";
}

Ответ 2

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

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

Это может быть полезно, если у вас есть несколько экземпляров определенного класса и они пытаются определить, что получает dealloc'd, когда.