我有一个包含核心基础对象的属性,特别是 CFHTTPMessageRef。我尝试使用属性((NSObject)) 宏来告诉编译器将引用的对象视为普通的 NSObject 并为我处理该对象的保留和释放,而不必自己 CFRelease。我尝试将属性更改为弱而不是强,但似乎没有任何效果,静态分析器仍然告诉我有内存泄漏,从 CFGetRetainCount 的输出来看,它是正确的。有谁知道为什么我的财产会导致内存泄漏:
typedef __attribute__((NSObject)) CFHTTPMessageRef HTTPMessageRef;
@interface ABRemoteConnection : NSObject
@property (strong) HTTPMessageRef message;
@end
- (void)dataReceived:(NSNotification *)notification {
self.message = CFHTTPMessageCreateEmpty(kCFAllocatorDefault, TRUE);
// do some stuff and if the message is complete, use it and release the
// message object
if (messageIsComplete(self.message)) {
self.message = NULL;
}
}