我使用MagicalRecord lib加載一些用於填充tableview的CoreData對象。這是一個緩慢的操作,因此我試圖在背景威脅上做到這一點。 這一切看起來都很順利,數據被加載到self.products
,只有經過一段時間(+ - 分鐘)後,所有加載的對象纔會進入<fault>
狀態。我不明白爲什麼會發生這種情況,任何人都有想法?Coredata magicalrecord在後臺獲取對象進入<fault>狀態
- (void)doInBackground
{
dispatch_queue_t myQueue = dispatch_queue_create("com.mycompany.myqueue", 0);
dispatch_async(myQueue, ^{
[self reloadData];
dispatch_sync(dispatch_get_main_queue(), ^{
[MBProgressHUD hideHUDForView:self.view animated:YES];
[self performSelectorOnMainThread: @selector(sortData:) withObject:self waitUntilDone:YES];
});
});
}
- (void)reloadData
{
NSArray *allProducts = [NSArray array];
allProducts = [NSArray arrayWithArray:[Product MR_findAll]];
self.products = [NSArray arrayWithArray:allProducts];
}
對不起,但這有點令人困惑,MR_privateQueueContext不被MagicalRecord識別。你可以重寫我的代碼,以解決問題的地方獲取對象進入狀態? –
Oysio
MR_privateQueueContext位於features/experimental分支上。嘗試切換到現在,而我理清了一些實驗功能回到開發/主要主線的細節。 – casademora
@casademora我有緩慢的提取導致UI阻塞相同的問題。 MR_privateQueueContext沒有已知的類方法。我知道你建議切換到實驗分支,但我想知道是否有一個可靠的方法來處理這個問題? – soleil