我有以下功能:
- (NSString *)urlEncodedValue {
NSString *result = (NSString *)CFURLCreateStringByAddingPercentEscapes(
kCFAllocatorDefault,
(CFStringRef)self,
NULL,
CFSTR("?=&+/\r\n"),
kCFStringEncodingUTF8
);
return [result autorelease];
}
为什么 Clang 会给我以下投诉?
- 1 调用函数“CFURLCreateStringByAddingPercentEscapes”返回一个核心基础对象,保留计数为 +1(拥有引用)
- 2 对象发送 -autorelease 消息
- 3 对象作为拥有引用返回给调用者(单个保留计数转移给调用者)
- 4 对象过度自动释放:对象已发送 -autorelease 但对象的保留计数为零(本地可见)
据我所知,这符合 Apple 关于内存管理和对象所有权的准则。我必须明确释放对象吗?这个错误在我的项目中出现了 19 次,都是在类似的情况下出现的。我究竟做错了什么?