iOS   发布时间:2022-05-04  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了我应该如何在iPhone项目中指定sqlite数据库的路径?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

将其作为资源添加后,数据库文件本身位于项目根目录中. 我只能通过指定OS X看到它的完整路径来打开它,即“/ Users / Louis / Documents / Test Project / test.db”. 但当然iPhone上没有这样的路径. 我想我应该将路径定义为“application root / test.db”,但我不知道如何,或者除了我的开发机器之外还能在其他地方工作. 谢谢@H_674_5@
将其作为资源添加后,数据库文件本身位于项目根目录中.

只能通过指定OS X看到它的完整路径来打开它,即“/ Users / Louis / Documents / Test Project / test.db”.

但当然iPhone上没有这样的路径.

我想我应该将路径定义为“application root / test.db”,但我不知道如何,或者除了我的开发机器之外还能在其他地方工作.

谢谢你的任何想法.

解决方法

获取在xcode中添加文件的路径,您将使用pathForresource:ofType:与您的mainBundle.

NSString *path = [[NSBundle mainBundle] pathForresource:@"yourDb" ofType:@"sqlite"];

但是您无法更改mainBundle中的文件.所以你必须将它复制到另一个位置.例如,您的应用程序库.

你可以这样做:

NSString *libraryPath = [NSSearchPathForDirectoriesInDomains(NSLibraryDirectory,NSUserDomainMask,YES) lastObject];
NSString *targetPath = [libraryPath StringByAppendingPathComponent:@"yourDB.sqlite"];

if (![[NSFileManager defaultManager] fileExistsAtPath:targetPath]) {
    // database doesn't exist in your library path... copy it from the bundle
    NSString *sourcePath = [[NSBundle mainBundle] pathForresource:@"yourDb" ofType:@"sqlite"];
    NSError *error = nil;

    if (![[NSFileManager defaultManager] copyItemAtPath:sourcePath toPath:targetPath error:&error]) {
        NSLog(@"Error: %@",error);
    }
}

大佬总结

以上是大佬教程为你收集整理的我应该如何在iPhone项目中指定sqlite数据库的路径?全部内容,希望文章能够帮你解决我应该如何在iPhone项目中指定sqlite数据库的路径?所遇到的程序开发问题。

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

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。