gpt4 book ai didi

ios - Xamarin iOS 找不到 sqlite 数据库的路径

转载 作者:行者123 更新时间:2023-11-29 10:26:16 25 4
gpt4 key购买 nike

我正在开发一个需要有一个简单的 sqlite 数据库的 iOS 应用程序。这是在使用 Xamarin 的可移植类库中。在代码中,我试图连接到数据库,但我不确定应该将数据库放在我的项目文件夹中的什么位置,也不确定 #if __ IOS__ 是否正常工作,但我使用的是基于在此处的 Xamarin 文档上:http://bit.ly/1MxSYey

public static SQLiteConnection GetConnection()
{
#if __IOS__
var sqliteFilename = "messages.db";
var docs = Environment.GetFolderPath(Environment.SpecialFolder.Personal);
var db = Path.Combine(docs, "..", "Library", sqliteFilename);
return new SQLiteConnection(db);
#endif
return null;
}

最佳答案

在 PCL 中,您应该使用接口(interface)和依赖注入(inject),而不是像在共享解决方案中那样使用 IF 指令。

例如。 Xamarin Forms 内置了依赖注入(inject)(但您也可以使用其他库):

PCL 共享库:

public interface ISqlite {
SQLiteConnection GetConnection();
}

iOS 特定项目:

[assembly: Dependency (typeof (SqliteApple))]
public class SqliteApple : ISqlite
{
public SQLite.SQLiteConnection GetConnection ()
{
var sqliteFilename = "messages.db";
var docs = Environment.GetFolderPath(Environment.SpecialFolder.Personal);
var db = Path.Combine(docs, "..", "Library", sqliteFilename);
return new SQLiteConnection(db);
}
}

然后像这样使用它:

var database = DependencyService.Get<ISqlite>().GetConnection();

关于ios - Xamarin iOS 找不到 sqlite 数据库的路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32097736/

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