UIButton *testButton = [[UIButton alloc] init];
[self.view addSubview:testButton];
testButton.backgroundColor = [UIColor redColor];
[testButton mas_makeConstraints:^(MASConstraintMaker *make) {
make.width.equalTo(@100);
make.height.equalTo(@100);
make.left.equalTo(self.view.mas_left);
make.top.equalTo(self.view.mas_top);
}];
[testButton bk_addEventHandler:^(id sender) {
[self dismissViewControllerAnimated:YES completion:nil];
} forControlEvents:UIControlEventTouchUpInside];
В моем коде я использую оба блока и масонство. Если я использую I BlocksKit, bk_addEventHandler
, есть цикл сохранения, который, я думаю, потому, что я сам сохраняю self.view, сохраняю testButton, сохраняю себя. Однако, когда я использую Mansonry самостоятельно без BlocksKit, и я использую сильное «я» в масонстве mas_makeConstraints
, мне приходит в голову, что нет цикла сохранения, потому что viewController может вызывать метод dealloc. Может ли кто-нибудь объяснить мне, что в масонстве нет цикла удержания?Когда я должен использовать слабость в блоке и почему нет цикла сохранения в масонстве?
Дальнейшее обсуждение: http://www.apeth.com/iOSBook/ch12.html#_unusual_memory_management_situations – matt