在flattenMap中引用时,未释放ReactiveCocoa对象

时间:2015-02-20 16:55:00

标签: reactive-cocoa

当我在flattenMap块中引用变量时,它没有被释放。请参阅代码段 -

TestMem * t = [[TestMem alloc] init];
[[[RACSignal return:nil]
  flattenMap:^RACStream *(id x) {
     return [t testFunc];
  }] subscribeNext:^(id x) {  
  } completed:^{
      NSLog(@"completed");
  }];

TestMem的实现如下:

@implementation TestMem

   - (void)dealloc {
       NSLog( @"dealloc is called: self=%@", self);
   }

   - (RACSignal *) testFunc {
      return [RACSignal return:nil];
   }

   @end

TestMem对象和flattenMap块没有循环引用,所以我假设TestMem对象-t应该被释放,但它没有。如果我使用@Weakfy(t)& @strongify(t),该对象正在被释放。 任何人都可以解释为什么会这样。

0 个答案:

没有答案