IE:
boolRef = (CFBooleanRef)CFDictionaryGetValue(descriptionDictionary, kDADiskDescriptionMediaRemovableKey);
if (boolRef) {
CFRelease(boolRef); // do i need this code?
}
IE:
boolRef = (CFBooleanRef)CFDictionaryGetValue(descriptionDictionary, kDADiskDescriptionMediaRemovableKey);
if (boolRef) {
CFRelease(boolRef); // do i need this code?
}
首先阅读Core Foundation 的内存管理编程指南。答案是否定的,因为创建规则。CFDictionaryGetValue()
不包括“创建”或“复制”字样。
请注意,CFRelease()
在这种情况下不仅不需要,而且不正确并且会导致过度释放崩溃。