ARC に問題があります。数時間のデバッグの後、あきらめて、ここで確認することにしました。
基本的に、のMainViewControllerインスタンスを作成する がありますPreviewsView。
私はPreviewsViewデリゲートとデータソースのプロパティを持っています:
@property (nonatomic, unsafe_unretained) IBOutlet id<PreviewsDataSource> dataSource;
@property (nonatomic, unsafe_unretained) IBOutlet id<PreviewsDelegate> delegate;
PreviewsViewinのインスタンスを作成し、 andとしてMainViewController設定selfし、ビューに追加してインスタンス変数として保存します。delegatedataSource
- (void)addPreviews {
previewsView = [[PreviewsView alloc] initWithFrame:CGRectMake(0, 75, 1024, 480)];
previewsView.dataSource = self;
previewsView.delegate = self;
[self.view addSubview:previewsView];
}
次に、MainViewControllerナビゲーションコントローラーから削除すると、ACRの割り当てが解除されますが、previewsViewまだ存在し(なぜ???)、トリガーするメソッドを実際に実行しています[self.delegate doSomeStuff]。すでに解放されているようMainViewControllerに、それはスローしEXC_BAD_ACCESSます。
だから基本的に:
- (previewsView)のインスタンスを
MainViewController所有するインスタンスPreviewsView MainViewController割り当てられた asdelegateおよびdataSourceinのインスタンスPreviewsView- のインスタンスの割り当てを解除した後
MainViewController、previewsView はまだ有効で実行中です。
なぜ何かアイデアはありますか?? ありがとう。