我在我的应用程序中使用protoBuf与服务器通信,在检测应用程序之后我认为初始化任何新的protoBuf对象会导致新的泄漏。我已经对这个问题进行了很多搜索,但找不到任何有用的东西。
我的项目使用ARC而protoBuf没有,我添加了#34; -fno-objc-arc"在构建阶段标记,因此编译器不会将ARC用于protoBuf类。
继承了protoBuf用于初始化新实例的代码:
+ (instancetype)message {
return [[[self alloc] init] autorelease];
}
- (instancetype)init {
if ((self = [super init])) {
messageStorage_ = (GPBMessage_StoragePtr)(((uint8_t *)self) + class_getInstanceSize([self class]));
readOnlySemaphore_ = dispatch_semaphore_create(1);
}
}
我调用[newProtoBufInstance message]
方法来创建新实例。
和heres仪器泄漏工具的调用树: