我有一些代碼如下所示:真正的泄漏或虛假分析儀報告?
CFDictionaryRef myFunction()
{
CFIndex myNumberIndex = 1234;
CFNumberRef myNumber = NULL;
CFMutableDictionaryRef theDict = CFDictionaryCreateMutable(kCFAllocatorDefault, 0, 0, 0);
myNumber = CFNumberCreate(kCFAllocatorDefault, kCFNumberSInt32Type, &myNumberIndex);
CFDictionaryAddValue(theDict, kSomeKeyConstant, myNumber);
return theDict;
}
鐺靜態分析報告,myNumber
是泄漏的對象。很明顯,因爲沒有電話給CFRelease()
我傾向於理解這個問題,但我對CF一般不夠精通,所以我想驗證一下:myNumber
需要在這裏發佈,即使它被添加到CFDictionary中回?那是......我正在給詞典添加一個有自己的保留/發佈需求的副本(在這種情況下,我需要在這裏發佈它)?我假設答案與字典創建時使用的kCFAllocatorDefault
參數有關,但我沒有看到對象所有權的明確指示。
這非常有幫助;謝謝!希望您不介意我是否使用您提供的文檔鏈接中的相關材料編輯了答案。 – mah
@mah很高興幫助,編輯看起來很好。 – Caleb