14

在一个类的 dealloc 方法中,我将如何打印出被释放实例的 ID(或其他一些唯一标识符)?

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

这可能吗?我只是想在控制台中获得更多反馈,以帮助学习。

非常感谢-加里-

4

2 回答 2

54

如果您特别想要对象的内存地址(如果您的类中没有实现,我想可以将其视为“标识符”),您可以使用它:

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

如果您有多个特定类的实例并试图确定哪个实例在何时被释放,这会很有帮助。

于 2010-05-27T02:08:26.383 回答
7

试试这个:

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

这将向控制台输出有关该对象的更多信息。根据类,您将获得内存地址和类名或更详细的信息。如果您想在自己的类中提供更详细的内容,请覆盖此方法并返回您想要的任何内容:

-(NSString *)description {
    return @"Something useful about this object";
}
于 2009-09-09T12:03:09.997 回答