如果我在另一个UIViewController中使用UICollectionView子类,就像这样...
BrowseCVC *cvc = [self.storyboard instantiateViewControllerWithIdentifier:@"BrowseItemVC"];
[self.containerScrollView addSubview:cvc.view];
...并滚动集合视图或点击一个单元格,它将崩溃并显示EXC_BAD_ACCESS。
但是,如果我将其声明为
@property (strong, nonatomic) BrowseCVC *cvc;
)并像这样使用它...self.cvc = [self.storyboard instantiateViewControllerWithIdentifier:@"BrowseItemVC"];
[self.containerScrollView addSubview:self.cvc.view];
...一切正常。
BorwseCVC
是一个非常简单的UICollectionViewController子类,具有非常简单的结构。我的问题是:为什么?
最佳答案
ARC负责内存管理,但在这些方面
BrowseCVC *cvc = [self.storyboard instantiateViewControllerWithIdentifier:@"BrowseItemVC"];
[self.containerScrollView addSubview:cvc.view];
没有任何建议可以保留cvc。您只保留其观点。 cvc被取消分配,您得到exc_bad_access