mad*_*erz 1 iphone cocoa-touch objective-c instruments
我正在努力学习仪器是如何工作的,为此我创建了一个带有泄漏的小项目,看它是否出现在仪器中,但它没有显示出来.我必须创建泄漏的代码如下:
-(IBAction)leakme
{
self.leaked = [[NSString alloc]init];
self.leaked2 = [[NSString alloc]init];
self.leaked3 = [[NSString alloc]init];
leaked = @"John";
leaked2 = @"Anderson";
leaked3 = @"Smith";
}
Run Code Online (Sandbox Code Playgroud)
这并没有显示任何泄漏.由于应用程序从未达到dealloc方法,我执行了以下操作:
-(IBAction)nilit
{
self.leaked = nil;
self.leaked2 = nil;
self.leaked3 = nil;
}
Run Code Online (Sandbox Code Playgroud)
但仍然没有泄漏.我在这里想念的是什么?
谢谢.
你实际上并没有分配任何东西; NSString在内部进行优化,[[NSString alloc] init]返回单例.
使用NSMutableString或使用自己创作的类(更好).