2009-09-09 2 views
12

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

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

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

большое спасибо -gary-

ответ

6

Попробуйте это:

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

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

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

Отлично, так я могу предположить, что «я» просто получает доступ к описанию класса по умолчанию? – fuzzygoat

+0

Правильно - функция NSLog() заменяет% @ описанием данного объекта. Метод -description объекта NSObject предоставляет значение по умолчанию <имя_файла: адрес>. См. Здесь для получения дополнительной информации о полезных материалах, связанных с NSLog: http://www.cocoadev.com/index.pl?NSLog – iKenndac

+0

Что делать, если вы хотите идентификатор для другого класса? Например. У меня есть переменная-член 'NSMutableArray', и я бы хотел напечатать свой идентификатор экземпляра. –

52

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

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

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

+0

Спасибо, dmkash, это хороший момент, очень ценится. – fuzzygoat

+0

Документация о спецификаторах формата строки: https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/Strings/Articles/formatSpecifiers.html – LopSae

Смежные вопросы