繁体   English   中英

明显的泄漏,但c静态分析器未检测到,为什么?

[英]An obvious leak but clang static analyzer didnot detect, Why?

我写了一些这样的代码,

- (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,但是当我单击Xco​​de菜单上的“分析”时,它没有检测到keyArray的泄漏。

如果我注释“ NSArray * sortedKeys = ...”这一行,它可以检测到keyArray的泄漏。

我想知道静态分析器怎么了。

非常感谢您的帮助。

重要的是要了解静态分析器并不总是正确的,也不总是错误的。 它可能会带来误报和误报。 但是,默认设置可以使误报的可能性降到最低。 在这种特殊情况下,我想分析器没有足够的数据来确定keyArray会发生什么

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM