我的情況是,我的應用程序使用的核心數據,並且需要從核心數據加載圖像在一個表視圖來顯示acessed核心數據崩潰。由於需要這麼做的時間,它需要在後臺線程中運行。所以我有這樣的代碼:應用程序時,從後臺線程和主線程在同一時間
dispatch_async(queue, ^{
if (self.cellInfo.numberOfMediaItems > 0) {
int i = 0;
int numberOfThumbnails = MIN(self.cellInfo.numberOfMediaItems, 3);
while (i < numberOfThumbnails) {
Media *media = [self.entry.media objectAtIndex:i];
UIImage *image = [media getThumbnail];
[self.mediaArray addObject:image];
i++;
}
}
dispatch_async(dispatch_get_main_queue(), ^{
self.isFinishedProcessing = YES;
[self setNeedsDisplay];
});
});
這加快了相當程度的進程,並在圖像準備就緒時出現在背景中。
的問題是,有時它會在同一時間後臺線程有前臺線程嘗試和訪問核心數據。它不喜歡這樣,所以它崩潰。這必然是很多開發人員進入的情況,因此有一個解決方案。我想知道如何處理這種情況,以便我們的應用在同時開始訪問核心數據時停止崩潰?
這意味着我的應用在使用時不會再崩潰? – Andrew