我写了一些像这样的代码,
- (NSString*) caleSignParam:(NSMutableArray*)postData
{
NSMutableArray* keyArray = [[NSMutableArray alloc] initWithCapacity:50];
......
NSArray* sortedKeys = [keyArray sortedArrayUsingComparator:
(NSComparator)^(NSString *obj1, NSString *obj2) {
return [obj1 compare:obj2 options:NSLiteralSearch];
}];
......
NSString* signStr = aString;
return signStr;
}
我忘了释放keyArray,并且使用非ARC,但是当我点击Xcode菜单上的“Analyze”时,它没有检测到keyArray的泄漏。
如果我评论“NSArray * sortedKeys = ...”这一行,它可以检测到keyArray的泄漏。
我想知道静态分析仪有什么问题。
我非常感谢你的帮助。
答案 0 :(得分:1)
重要的是要了解静态分析仪并不总是正确的,也不总是不正确的。它可能会引发误报和漏报。但是,默认设置使得误报的可能性最小。在这种特殊情况下,我猜测分析器没有足够的数据来明确决定keyArray会发生什么