如果我在另一个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

09-17 05:19