我遇到了線程問題。 當我在線程繁忙時在2個屏幕之間漫遊幾次之後。線程不會執行每一行..,當它必須返回到主線程時,斷點纔會消失。 有人可以幫我嗎?iOS - 線程不會回到主線程
我在釋放視圖時釋放線程。
感謝,
- (void)fetchFeedDataIntoDocument
{
NSString * labelString = [NSString stringWithFormat:@"Feed Fetcher %@", self.pageTitle];
const char *label = [labelString UTF8String];
self.fetchF = dispatch_queue_create(label, NULL);
dispatch_async(self.fetchF, ^{
NSArray *feeds = [FeedFetcher getDataForJson:self.pageTitle downloadBy:@"up"];
NSDictionary *lastfeed;
AppDelegate *appDelegate = [[UIApplication sharedApplication] delegate];
NSManagedObjectContext *context = [appDelegate getManagedObjectContext];
if ([feeds count] > 0)
{
lastfeed = [feeds objectAtIndex:0];
[FeedFetcher setLastUpdateIdToCatgorie:self.pageTitle WithId:[lastfeed objectForKey:@"id"] AndPulishDate:[lastfeed objectForKey:@"publish_up"]];
}
for (NSDictionary *feedInfo in feeds) {
[Feed FeedWithInfo:feedInfo InManageObject:context];
}
NSError *error = nil;
[context save:&error];
if (error){
NSLog(@"Error save : %@", error);}
dispatch_async(dispatch_get_main_queue(), ^{
[self setupFetchedResultsController];
[self.tableView reloadData];
[self downloadImagesForFeeds:feeds];
});
});
現在,我得到這個錯誤:),終止應用程序由於未捕獲的異常‘NSInvalidArgumentException’,原因:‘父的NSManagedObjectContext必須使用NSPrivateQueueConcurrencyType或NSMainQueueConcurrencyType’ –
OK,這意味着你使用的是「默認「通過Xcode的模板創建MOC我會在一分鐘內添加一段代碼,上面的回答 –
非常感謝你一定要,我認爲這是解決:d,它的工作現在罰款 –