gpt4 book ai didi

ios - 使用无效 URL 调用 addPersistentStoreWithType 时崩溃 - 路径中的文件似乎不是 SQLite 数据库

转载 作者:行者123 更新时间:2023-11-29 10:54:15 30 4
gpt4 key购买 nike

当损坏的/非 sqlite 传递给时,我需要处理核心数据错误

- (NSPersistentStore *)addPersistentStoreWithType:(NSString *)storeType configuration:(NSString *)configuration URL:(NSURL *)storeURL options:(NSDictionary *)options error:(NSError **)error

它会导致崩溃。崩溃清楚地描述了错误

Unresolved 错误 Error Domain=NSCocoaErrorDomain Code=259 "The operation couldn't be completed. (Cocoa error 259.)"UserInfo=0xb925300 {NSUnderlyingException=File at path does not appear to be a SQLite database:

假设在这种情况下会返回一个nil值,我是这样处理的

if (![storeCoordeinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeUrl options:nil error:&error]) {
NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
};

但它仍然崩溃。在这种情况下处理此错误的正确方法是什么。 ?

最佳答案

使用 try-catch block 。 https://developer.apple.com/library/mac/documentation/cocoa/conceptual/ProgrammingWithObjectiveC/ErrorHandling/ErrorHandling.html在页面底部

BOOL isValidDatabaseFile = YES;
@try
{
if (![storeCoordeinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeUrl options:nil error:&error])
{
NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
};
}
@catch(NSException *ex)
{
isValidDatabaseFile = NO;
}
@finally
{
}

然后检查 isValidDatabaseFile

关于ios - 使用无效 URL 调用 addPersistentStoreWithType 时崩溃 - 路径中的文件似乎不是 SQLite 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19099142/

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