为什么当使用Instrument-Leaks工具执行以下代码(故意泄漏)时,是否显示NSObject存在泄漏,而不是NSDate?当我使用Analyze静态分析工具运行时,它们都会显示出来。
#import <Foundation/Foundation.h>
int main (int argc, const char * argv[]) {
NSObject* obj = [NSObject alloc];
obj = [NSObject alloc];
NSDate* date = [NSDate alloc];
date = [NSDate alloc];
sleep(10); // time to allow leaks to pick up sample
return 0;
}
答案 0 :(得分:2)
这只是一个假设:NSDate可以实现一些非常难以实现的性能攻击,这使得-alloc方法返回缓存值。