そのように別の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が取得されます
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加