ボタン アクションで 2 つのメソッドを呼び出しました。
- (IBAction)capture:(id)sender
{
/*1*/ [self.capturingWindow capturePhoto]; //capture pictures and pass the paths to imagePathsArray
NSLog(@"imagePathsArray.count---%d",imagePathsArray.count) ;
/*2*/ [self displayImagesOnScrollView:imagePathsArray];
}
画像キャプチャ ボタンには、これら 2 つのメソッドがあります。
1. [self.capturingWindow capturePhoto]; //capture pictures and pass the paths to imagePathsArray
このメソッドは画像をキャプチャし、キャプチャした画像のパスを imagePathsArray に設定します
2. [self displayImagesOnScrollView:imagePathsArray];
これらの入力された imagePathsArray を使用するこのメソッドは、
それぞれのイメージ ビューでイメージを表示します。
問題はmethod:1です。[self.capturingWindow capturePhoto];
imagesPathsArray へのパスをキャプチャしてロードするのに時間がかかります。
その間、メソッド:2。[self displayImagesOnScrollView:imagePathsArray];
その結果、境界を超えた配列が原因でクラッシュが発生します。
で試しました
[ self performSelector:@selector(displayImages) withObject:nil afterDelay:1]
メソッドを直接使用する代わりに..
まだ役に立たない // 問題を 40% 減らしますが、それでも再現します
2 番目のメソッドは、最初のメソッドの後にのみ呼び出す必要があります。
ただし、遅延を少なく維持する方がよい (優先度が低い)