gpt4 book ai didi

ios - 执行获取请求时应用程序卡住

转载 作者:行者123 更新时间:2023-11-28 22:31:31 25 4
gpt4 key购买 nike

在我的应用程序中,在执行获取请求时应用程序随机卡住。我已经尝试了多个选择,比如 @synchronized 和 performblock 仍然挂起。下面是我的第一个获取请求 block 。应用程序随机挂起此获取请求。

+(BXXXX *)getDetailsById:(NSNumber *)Id
{
NSFetchRequest *fetch = [[NSFetchRequest alloc] init];
NSEntityDescription *entityDescription = [NSEntityDescription

entityForName:@"BXXXX" inManagedObjectContext:[SDataManager managedObjectContext]];
[fetch setEntity:entityDescription];
[fetch setPredicate:[NSPredicate predicateWithFormat:
@"(BId = %@)",Id]];


__block NSArray *bDetails;
[[SDataManager managedObjectContext] performBlockAndWait:^{
NSError *error = nil;
bDetails = [[SDataManager managedObjectContext] executeFetchRequest:fetch error:&error];

}];

if([bDetails count] == 1)
return [bDetails objectAtIndex:0];
else
return nil;

}

//我的托管对象上下文声明

+(NSManagedObjectContext *)managedObjectContext
{
static NSManagedObjectContext *managedObjectContext;
if(managedObjectContext!=nil){
return managedObjectContext;
}
@try {
NSPersistentStoreCoordinator *coordinator = [self persistentStoreCoordinator];
if (coordinator != nil) {
managedObjectContext = [[NSManagedObjectContext alloc] initWithConcurrencyType:NSMainQueueConcurrencyType];
[managedObjectContext setPersistentStoreCoordinator: coordinator];
}
}
@catch (NSException *exception) {
NSLog(@"Exception occur %@",exception);
}
return managedObjectContext;

}

请指导我解决这个问题。我很努力,但我现在仍然无法解决这个问题。

最佳答案

        managedObjectContext = [[NSManagedObjectContext alloc] initWithConcurrencyType:NSMainQueueConcurrencyType];

您的托管对象上下文将在主队列上完成所有工作。这将阻止主事件循环并导致您的应用程序挂起。

将工作移出主队列。查看Core Data Concurrency Guide .

关于ios - 执行获取请求时应用程序卡住,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17300081/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com