应用程序在尝试创建数据库时崩溃

2024-07-01

我使用“SQLite 数据库浏览器”创建了一个 sql 数据库,将其拖放到我的 Xcode 项目中,并构建了应用程序。它在模拟器上运行良好,但在 iPhone 上崩溃,并出现以下错误:

*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', 
 reason: 'Failed to create writable database file with message 'The operation could‚ 
not be completed. (Cocoa error 260.)'.'   

这是我的代码:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    // Creates a writable copy of the bundled default database in the application Documents directory:
    NSLog(@"AppDelegate...Looking for embedded Database file...");
    BOOL success;
    NSFileManager *fileManager = [NSFileManager defaultManager];
    NSError *error;
    // Grab the path to the Documents folder:
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
    NSString *writableDBPath = [documentsDirectory stringByAppendingPathComponent:@"users.sql"];

    success = [fileManager fileExistsAtPath:writableDBPath];
    if (success) {
        NSLog(@"Database File Exists in Documents folder!");
        NSLog(@"Its path is: %@", writableDBPath);
        return YES;
    }
    else {
    // But if the writable database does not exist, copy the default to the appropriate location.
    NSLog(@"!!NO Database File Exists in Documents folder!");
    NSString *defaultDBPath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"users.sql"];
    success = [fileManager copyItemAtPath:defaultDBPath toPath:writableDBPath error:&error];
    if (!success) {
        NSAssert1(0, @"Failed to create writable database file with message '%@'.", [error localizedDescription]);
    }
    else 
        NSLog(@"WROTE THE DATABASE FILE!!!");
}

return YES;
}

同样,这适用于模拟器,但不适用于 iPhone。 (这不可能与具有“.sql”扩展名而不是“.sqlite”扩展名的文件有任何关系,不是吗?因为这是“SQLite 数据库浏览器”为其创建的文件提供的扩展名。 .)


答案与确保 sql 文件的“目标成员资格”设置正确有关,以便项目“看到”它:

1)单击Xco​​de左侧窗格中的sql文件

2)打开/显示文件检查器(右窗格)

3) 在“目标会员资格”下,确保“检查”为“已检查”

就是这样。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

应用程序在尝试创建数据库时崩溃 的相关文章

  • 当用户选择 UITextField 时,如何显示 UIDatePicker 而不是键盘?

    我在表视图中有一个漂亮干净的用户界面 其中有一些文本字段供用户填写 其中一个字段是用户的生日 我希望这样当用户选择生日字段时 会出现一个包含 UIDatePicker 的视图 就像选择文本字段时不同的键盘一样 这可以做到吗 我必须防止文本字
  • 当 Firebase 数据库中的值发生更改时创建推送通知

    我想在 firebase 数据库中的值发生更改时向用户发送推送通知 这是我的数据库 Battles 00000111 062B3333 4046 4FB4 AA37 C2B05853E497 BattleProgress Player1 l
  • 以编程方式创建图像的缩略图

    在我的应用程序中 我从服务器获取图像 并且能够在图像视图中显示图像 但现在我想将从服务器获取的图像存储在表视图中 并在单击表视图单元格时显示它们 我想要的是如何制作图像的缩略图 以便将其显示在表视图单元格中 如果我直接在表视图单元格中显示图
  • 当Text超过Height时如何增加UITextView的高度

    我有一个 UITextView 当我在 5 6 行后输入数据时 数据正在向上滚动并且看不到 当输入的文本超过高度时 是否有任何属性可以用来增加 UITextView 的高度 请建议大家 使用此代码使 UITextView 的高度与其内部内容
  • SQLDroid 和加密数据库

    我的应用程序有一个已经存在的数据库 已经存在 是指我不在我的应用程序中创建数据库 我只是连接到它并读取数据 为了设置连接 我使用 SQLDroid 现在我想知道是否有可能使用 SQLDroid 加密我的数据库 否则我的数据库未加密 任何人都
  • itunesconnect 在防火墙后面使用应用程序加载器

    我试图将我的应用程序的应用程序商店构建 zip 文件上传到应用程序商店 当在我的办公室防火墙后面使用时 TCP IP 连接失败 我需要知道应该打开哪个端口来使用应用程序加载器上传 iPhone 应用程序 这样端口就可以打开了 或者任何其他配
  • iPhone 中 didReceiveMemoryWarning 方法中发生 level=2 警告时如何获取警报[重复]

    这个问题在这里已经有答案了 可能的重复 调用 didReceiveMemoryWarning 时向用户生成警报 https stackoverflow com questions 1992784 generating alert to us
  • SQLite:从命令行插入二进制数据

    我有这个 SQLite 表 create table mytable aid INTEGER NOT NULL PRIMARY KEY bid INTEGER NOT NULL image BLOB 我想将一个二进制文件插入到image该表
  • iPhone 上的 COMET(服务器推送到客户端)[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我正在寻求从我的服务器到我的 iPhone 应用程序建立某种套接字 COMET 类型的功能 本质上 任何时候用户设法在服务器上设置任意
  • 查找 NSMutableArray 的交集

    我有三个 NSMutableArray 其中包含根据不同条件添加到列表中的名称 这是我的数组伪代码 NSMutableArray array1 Jack John Daniel Lisa NSMutableArray array2 Jack
  • 模块“Alamofire”没有名为“SessionManager”的成员

    为什么我会收到此错误 我没有收到 我已经将 Alamofire 更改为 AF 就像使用 Alamofire 5 一样 请指导哪里出了问题以及需要更改什么 下面是我收到错误的代码 private func callAlamoFireForma
  • WiFiManager - 绊脚石

    我尝试使用 iphone os 2 0 和 3 0 使用 stumbler 获取 ssid 但出现错误 发现缺少一些框架 谁能告诉我如何恢复 我发现 StackOverflow 上有一篇文章提到 PrivateFrameworks Appl
  • 与 ADO.NET、SQLite 和 TSQL 的只读连接

    我的代码通过一个连接读取并通过另一个连接写入 我不想意外地使用读取连接进行写入 我怎样才能使连接只读 我正在使用 SQLite ATM 并将在原型结束时将代码部分转换为 tsql 您可以将 Read Only True 添加到只读连接 Da
  • UIModalTransitionStyleFlipHorizo​​ntal 横向垂直翻转

    在横向模式下 从一个视图 导航控制器堆栈的一部分 转换到另一个视图作为模态视图 并将 UIModalTransitionStyleFlipHorizo ntal 设置为 modalTransitionStyle 视图在横向模式下垂直翻转 动
  • READ_UNCOMMITTED 与无事务?

    在事务外部执行 SQL 与在 READ UNCOMMITTED 隔离模式下执行 SQL 之间有什么区别 澄清 我试图理解两者之间的区别java sql Connection TRANSACTION NONE http download or
  • 从 Iphone 本机客户端使用 Google App Engine 进行身份验证

    我想创建一个 Iphone 游戏 用户可以使用他们的 facebook 凭据登录并通过在 Google App Engine 上运行的我的服务器进行身份验证 我已经在 iPhone 和 Google App Engine 上使用了 Face
  • 更改文本后无法更改 UISearchBar 取消按钮标题颜色。

    我使用此代码来更改 UISearchBar 取消按钮标题 void searchDisplayControllerWillBeginSearch UISearchDisplayController controller self searc
  • 删除 iOS 中不需要的字符

    我正在填充地址簿中的所有联系人 我必须仅向服务器发送没有国家 地区代码且没有任何特殊字符和空格的电话号码 即纯电话号码 但我的地址簿电话号码采用不同的格式 如下所示 91 99 70 044099 125 91 8605 681220 91
  • 最新的 SQLite ODBC 驱动程序

    由于我的 SQLite 数据库文件之一已由最新的 SQLite 版本 3 39 2 管理 因此我无法再通过ODBC驱动程序 http www ch werner de sqliteodbc 连接数据库时没有错误 但表列表仍为空 我怀疑这是因
  • 现有的解决方案可以有效但安全地共享数据库数据吗?

    我想共享一个信息数据库 例如 geonames db 94y info a geonames db 的自定义版本 有用但安全 有没有 这样做的好方法 人们不应该被迫下载数据库来获取有用的信息 我当前的解决方案是允许任意 SELECT 查询

随机推荐