gpt4 book ai didi

sqlite - 将sqlite数据库与app和stringByAppendingPathComponent bundle 在一起

转载 作者:行者123 更新时间:2023-12-03 18:00:08 27 4
gpt4 key购买 nike

由于我是应用程序编程的新手,所以我可能甚至还不知道要问许多其他问题。

最初,我是从应用程序内部创建数据库的,然后将其复制到我的工作文件夹(该文件夹最终可能不在该文件夹中),然后从文本文件中追加我的记录(其中约有1000条)。

我想到的前两个问题是:
-数据库应位于哪个文件夹?
-如何与应用程序一起部署?

我在persistentStoreCoordinator函数中使用以下行找到了很多示例:

NSString *storePath = [[self applicationDocumentsDirectory] stringByAppendingPathComponent: @"myDatabase.sqlite"];
NSURL *storeUrl = [NSURL fileURLWithPath:storePath];

但是第一行给了我预编译错误:“实例消息的接收者类型'NSURL'没有使用选择器'stringByAppendingPathComponent:'声明方法。为什么它对我不起作用?

这实际上是将数据库与应用程序其余部分 bundle 在一起的最佳方法吗?

谢谢!

最佳答案

最简单的解决方案是使用NSUrl而不是NSString。 SO用户@trapper已经在下面的链接中提供了一个解决方案。

importing sqlite to coredata

NSURL *storeURL = [[self applicationDocumentsDirectory] URLByAppendingPathComponent:@"Database.sqlite"];

// If the database doesn't exist copy in the default one
if (![storeURL checkResourceIsReachableAndReturnError:NULL])
{
NSURL *defaultStoreURL = [[NSBundle mainBundle] URLForResource:@"Database" withExtension:@"sqlite"];

if ([defaultStoreURL checkResourceIsReachableAndReturnError:NULL])
{
NSFileManager *fileManager = [NSFileManager defaultManager];
[fileManager copyItemAtURL:defaultStoreURL toURL:storeURL error:NULL];
}
}

关于sqlite - 将sqlite数据库与app和stringByAppendingPathComponent bundle 在一起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8731620/

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