在 Xcode 4.6 中,clang 静态分析器警告我“调用 CFRelease 时出现空指针参数”。
这是分析器警告的屏幕截图:
这是您想要复制和粘贴的代码:
- (void)test
{
CFUUIDRef aUUID = CFUUIDCreate(kCFAllocatorDefault);
[self setUUID:aUUID];
CFRelease(aUUID);
}
- (void)setUUID:(CFUUIDRef)uuid
{
_uuid = uuid ? CFRetain(uuid) : CFUUIDCreate(kCFAllocatorDefault);
}
我不明白它为什么警告我。aUUID
永远不能是空指针,可以吗?我已经学会了不信任自己而不是我正在使用的工具,所以我在这里问。如果有人向我解释我所缺少的,我会很高兴。