大佬教程收集整理的这篇文章主要介绍了objective-c – 为什么仪器没有发现这种泄漏?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
事情是,XCode instruments没有发现这种泄漏,我认为它是一个非常直接的案例,它找到它.它没有报告我的应用程序中的任何泄漏,但我自己发现了这个,它让我有点怀疑.
我是在寻找一些东西还是仪器在检测泄漏方面相当差劲?
-(UITableViewCell*)newReadOnlyCellWithtitle:(NSString*)title andText:(NSString*)text { UITableViewCell *cell=[[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reusEIDentifier:nil] autorelease]; cell.textLabel.text=title; cell.SELEctionStyle=UITableViewCellSELEctionStyleNone; cell.BACkgroundColor=[UIColor whiteColor]; cell.opaque=YES; UILabel *textLabel=[[UILabel alloc] initWithFrame:CGRectMake(80,11,350,24)]; textLabel.text=text; textLabel.textColor=[UIColor lightTextColor]; textLabel.font=[UIFont fontWithName:STANDARD_FONT size:16.0]; textLabel.opaque=YES; textLabel.BACkgroundColor=[UIColor clearColor]; [cell.contentView addSubview:textLabel]; //[textLabel release]; //<== without the release this should leak,yep? return cell; }
编辑:静态分析器的输出……
仪器不知道指针的布局或上下文.如果你是malloc(1024)并且在那个[再循环]的内存块中碰巧有一堆指针,即使你再也不会将这些指针视为真正的引用,这些指针也会计算在内.
所以,不,泄漏永远不会100%准确.同样,泄漏内存的方法远远多于实际泄漏.如果你有一个全局缓存,像这样:
NSMutableDictionary *myGlobalCache;
你要填充缓存,但从不修剪它,这将是一个有效的内存泄漏,并且没有任何方式它会出现在仪器中.
我写了一篇关于Heapshot analysis的深入讨论,这是相关的,也可能是有意义的.
以上是大佬教程为你收集整理的objective-c – 为什么仪器没有发现这种泄漏?全部内容,希望文章能够帮你解决objective-c – 为什么仪器没有发现这种泄漏?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。