我正在努力学习仪器是如何工作的,要做到这一点,我创建了一个泄漏的小项目,看看它是否出现在仪器中,但它没有出现。我必须创建泄漏的代码如下:
-(IBAction)leakme
{
self.leaked = [[NSString alloc]init];
self.leaked2 = [[NSString alloc]init];
self.leaked3 = [[NSString alloc]init];
leaked = @"John";
leaked2 = @"Anderson";
leaked3 = @"Smith";
}
没有显示任何泄漏。由于应用程序从未到达dealloc方法,我做了以下操作:
-(IBAction)nilit
{
self.leaked = nil;
self.leaked2 = nil;
self.leaked3 = nil;
}
但仍然没有显示泄漏。我错过了什么?
谢谢。
实际上并没有分配任何东西;NSString在内部进行了优化,使得[[NSString alloc] init]
返回一个单例。
使用NSMutableString
或使用您自己创建的类(更好)