ios – CoreData:错误:(14)数据库的IO错误

ios – CoreData:错误:(14)数据库的IO错误,第1张

概述在XCode中编译和运行使用Core Data的项目时,我遇到了一个我从未见过的错误: 2013-09-12 16:59:10.156 myapp[57811:70b] CoreData: error: (14) I/O error for database at /Users/administrador/Library/ Application Support/i 在XCode中编译和运行使用Core Data的项目时,我遇到了一个我从未见过的错误:
2013-09-12 16:59:10.156 myapp[57811:70b] CoreData: error:       (14) I/O error for database at /Users/adminisTrador/library/         Application Support/iPhone Simulator/7.0/Applications/         6BA67336-B093-46CF-8B11-E3595409DAC2/myapp.app/database.sqlite.           sqlite error code:14,'unable to open database file'

生成此消息的代码是:

psc = [[NSPersistentStoreCoordinator alloc]                   initWithManagedobjectModel:self.managedobjectModel];    NSURL *storeURL = [[NSBundle mainBundle]                          URLForResource:@"database" withExtension:@"sqlite"];    [psc addPersistentStoreWithType:NSsqliteStoreType              configuration:nil URL:storeURL              options:@{NSReadonlyPersistentStoreOption : @YES} error:NulL];

我尝试过Build-> Clean,删除派生数据,卸载应用程序.

我在发布之前检查了this question,我相信问题是不同的.

注意:sqlite是应用程序的资源

使用调试建议的信息

2013-09-12 17:43:38.341 myapp[58322:70b] CoreData: annotation: Connecting to sqlite database file at "/Users/adminisTrador/library/Application Support/iPhone Simulator/7.0/Applications/6BA67336-B093-46CF-8B11-E3595409DAC2/myapp.app/database.sqlite"2013-09-12 17:43:38.360 myapp[58322:70b] CoreData: sql: SELECT Z_VERSION,Z_UUID,Z_PList FROM Z_MetaDATA2013-09-12 17:43:38.363 myapp[58322:70b] CoreData: annotation: disconnecting from sqlite database due to an error.2013-09-12 17:43:38.364 myapp[58322:70b] CoreData: error: (14) I/O error for database at /Users/adminisTrador/library/Application Support/iPhone Simulator/7.0/Applications/6BA67336-B093-46CF-8B11-E3595409DAC2/myapp.app/database.sqlite.  sqlite error code:14,'unable to open database file'2013-09-12 17:43:38.366 myapp[58322:70b] CoreData: annotation: disconnecting from sqlite database.
解决方法 既然iOS7上的NDA已被解除,我可以发布为完成我发现的这个问题的解决方法.

iOS7中的核心数据默认使用sqlite中的WAL.

唯一可行的解​​决方案是使用没有WAL的iOS6模拟器创建sqlite并将其导入项目中:

- (NSPersistentStoreCoordinator *)persistentStoreCoordinator{    static NSPersistentStoreCoordinator *psc;    static dispatch_once_t oncetoken;    dispatch_once(&oncetoken,^{        psc = [[NSPersistentStoreCoordinator alloc]                  initWithManagedobjectModel:self.managedobjectModel];        NSURL *storeURL = [[NSBundle mainBundle]                   URLForResource:@"database" withExtension:@"sqlite"];        [psc addPersistentStoreWithType:NSsqliteStoreType                          configuration:nil                                    URL:storeURL                                options:@{NSReadonlyPersistentStoreOption : @YES,NSsqlitePragmasOption: @{@"journal_mode":@"DELETE"}}                                  error:NulL];    });    return psc;}
总结

以上是内存溢出为你收集整理的ios – CoreData:错误:(14)数据库的I / O错误全部内容,希望文章能够帮你解决ios – CoreData:错误:(14)数据库的I / O错误所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1103595.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-28
下一篇2022-05-28

发表评论

登录后才能评论

评论列表(0条)

    保存