gpt4 book ai didi

ios - 使用 try catch 获取表单数据库

转载 作者:搜寻专家 更新时间:2023-10-30 22:24:33 24 4
gpt4 key购买 nike

我按常规写了一个fetch方法:

-(FXPCallLog *)getCallLogWithID:(NSString *)logID{
NSFetchRequest *request = [[NSFetchRequest alloc] initWithEntityName:[[FXPCallLog class] description]];

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"logID = %@", logID];
[request setPredicate:predicate];

NSError *err = nil;
NSArray *result = [self.moc executeFetchRequest:request error:&err];
if (!err && result && result.count > 0){
FXPCallLog *foundLog = (FXPCallLog *)[result firstObject];
return foundLog;
}
return nil;
}

而且效果很好。

但是当我将结果更改为:

NSArray *result = [[NSArray alloc] init];
@try {
result = [NSArray arrayWithArray:[self.moc executeFetchRequest:request error:&err]];
} @catch (NSException *exception) {
NSLog(@"deadlock :/");
} @finally {
return nil;
}

它让我得到错误的结果!

我不知道这两者之间有什么区别。

Why these are different ?


此外

我添加了 try-catch 来处理死锁。

我们将不胜感激任何意见和建议。

最佳答案

@finally 始终运行,无论是否抛出异常。因为你把 return nil; 放在那里,你所有的结果都会被丢弃。一如既往- more in the docs.

关于ios - 使用 try catch 获取表单数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55197525/

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