gpt4 book ai didi

iphone - 创建新文件而不是复制文件

转载 作者:行者123 更新时间:2023-11-29 04:28:23 26 4
gpt4 key购买 nike

编辑:看起来现在也无法与模拟器一起使用。

更多信息,看来如果我安装一个可以工作的存档版本,然后安装一个不能工作的版本,就在它上面,一切都很好。但是当我删除存档版本并安装新版本时,一切都会停止工作。

我刚刚在 iPhone 上测试我的应用程序,它工作得很好,当我将其存档并在手机上安装 ipa 时,数据库停止工作。加载数据库时不会发生任何错误,就像我之前所说的那样,它正常工作。我没有更改任何代码。它仍然可以在模拟器上运行,所以我知道它与数据库的复制有关。这是相关代码:

dbPath=[NSString stringWithFormat:@"%@/Documents/database.sql", NSHomeDirectory()];
// Get the documents directory
NSFileManager *fmngr = [[NSFileManager alloc] init];
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"database.sql" ofType:nil];
NSError *error;
if(![[NSUserDefaults standardUserDefaults] boolForKey:@"didLaunchFirstTime"])
{
[[NSUserDefaults standardUserDefaults] setBool:TRUE forKey:@"didLaunchFirstTime"];
[fmngr removeItemAtPath:[NSString stringWithFormat:@"%@/Documents/database.sql", NSHomeDirectory()] error:&error];

if(![fmngr copyItemAtPath:filePath toPath:[NSString stringWithFormat:@"%@/Documents/database.sql", NSHomeDirectory()] error:&error])
{
// handle the error
NSLog(@"Error creating the database: %@", [error description]);

}
}

我的查询如下所示,因为我使用 FMDB 来查询数据库。它位于用户按下搜索按钮时调用的单独方法中。

FMResultSet *s = [db executeQueryWithFormat:@"SELECT Gurmukhi, ShabadID, FirstLetterStr FROM Shabad WHERE FirstLetterStr LIKE %@", searchString];

我还解压缩了 ipa 以检查数据库是否不为空,事实并非如此。我不知道发生了什么。

最佳答案

您不应该在应用程序中对目录路径进行硬编码 - Apple 提供了获取它们的函数:

当您想在 bundle 中查找该文件时,可以通过以下方式获取:

NSString *dbPathOld = [[NSBundle mainBundle] pathForResource:@"database"ofType:@"sql"];

现在您拥有了随应用程序提供的 sql 文件的路径。

当您想复制它时,请使用以下代码:

NSString *docDir = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];NSString *dbPathNew = [docDir stringByAppendingPathComponent:@"database.sql"];

其他评论:

1)为什么不使用 NSFileManager *fm = [NSFileManager defaultManager];?

2)使用您的标准默认值,您是否在应用程序委托(delegate)的初始化方法中注册它们?您在更新值后同步它们(所以实际上“didLaunchFirstTime”是第二次设置的)?您可能需要添加一条日志消息,以便您可以确定。

关于iphone - 创建新文件而不是复制文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12037176/

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