我正在基于反应可可在iOS8上开发一个应用程序。该应用程序主要进行网络操作。
我注意到,当我的所有信号都完成并且所有信号引用都被清零时,我通过仪器检查时,内存中仍然看到一些RAC *对象仍存在。这是打算还是我的代码泄漏内存?当我运行信号时,有一个活动激增,我看到很多RAC对象被分配,然后它回落到这个状态,如下面的屏幕截图所示。
每个后续调用都以相同的状态结束。所以我不是很担心它。
谢谢,
答案 0 :(得分:0)
这些都是RAC使用的共享全局实例,因此它不需要为每次使用它们分配内存。我确信这个优化有一个更好的词,但我无法想象它是什么。例如,请查看RACUnit
:
+ (RACUnit *)defaultUnit {
static dispatch_once_t onceToken;
static RACUnit *defaultUnit = nil;
dispatch_once(&onceToken, ^{
defaultUnit = [[self alloc] init];
});
return defaultUnit;
}
由于所有RACUnit
都是相同的,因此RAC从不打算制作多个实例。这就是你所看到的一切。