2016-09-01 67 views
1

我在易反應的可可塊中使用了一個伊維爾,設置弱化(自我)和強化(自我)來打破保留週期。但是當我運行代碼時,它會導致內存泄漏,控制器不會調用dealloc方法。如果我將伊娃改爲財產,它就會正確運行。我對此很困惑,並且尋找很長時間。請告訴我爲什麼。爲什麼使用伊伐利可能導致反應可可的保留週期?

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    ... 
    @weakify(self); 
    [RACObserve(self, something) subscribeNext:^(id x) { 
     @strongify(self); 
     [_button setBackgroundColor:[UIColor redColor]]; 
    }]; 
} 

- (void)dealloc { 

} 

回答

2

@strongify(self)聲明新的變量名稱爲自己,當你調用self.button您使用這個新的變量,_button隱含的使用不重寫自

+0

'@weakify(個體經營)'聲明薄弱自我,'@強化(自我)'宣佈一個強大的自我。 'self.button'意味着使用強的,但'_button'不使用它。拯救我的一天。 – Monqi

相關問題