在这段代码上运行静态分析器:
- (id) readForeignPref
{
CFPropertyListRef matchStyle = CFPreferencesCopyAppValue(CFSTR("PBXFindMatchStyle"), CFSTR("com.apple.Xcode"));
return [(id)matchStyle autorelease];
}
产生以下警告:
调用函数“CFPreferencesCopyAppValue”返回一个核心基础对象,其保留计数为 +1(拥有引用)。Core Foundation 对象不会自动进行垃圾回收。
这是一个警告,我应该用这样丑陋的东西来修复:
- (id) readForeignPref
{
CFPropertyListRef matchStyle = CFPreferencesCopyAppValue(CFSTR("PBXFindMatchStyle"), CFSTR("com.apple.Xcode"));
id nsMatchStyle = [(id)matchStyle copy];
if (matchStyle) {
CFRelease(matchStyle);
}
return [nsMatchStyle autorelease];
}
或者这只是一个误报,因为复制的对象是免费桥接的?