它不關心這個:Xcode的「構建和分析」的作用範圍是什麼?
NSString* leaker()
{
return [[NSString alloc] init];
}
我認爲這將是足夠聰明,檢查是否有任何的代碼路徑可以調用該函數不釋放其返回值(通常我不會這樣的代碼,我只是測試分析儀)。
據報道這是一個泄漏:
NSString* leaker()
{
NSString* s = [[NSString alloc] init];
[s retain];
return s;
}
,但不是這個:
NSString* leaker()
{
NSString* s = [[NSString alloc] init];
// [s retain];
return s;
}
這似乎特別弱到我。它只在本地範圍內進行分析嗎?如果這個工具無法接受這樣的事情,我怎麼能期望它能夠彌補我可能犯的實際錯誤?