如何在iOS应用程序中将DB放入沙盒区域并访问路径?
现在,我在Linux和Windows上使用了DB数据 我想把它放在iPhone上,并在我的iOS应用程序中使用它们如何在iOS应用程序中将DB放入沙盒区域并访问路径?,ios,database,sandbox,Ios,Database,Sandbox,现在,我在Linux和Windows上使用了DB数据 我想把它放在iPhone上,并在我的iOS应用程序中使用它们 如何将DB放置在我的iOS应用程序??路径在哪里?通常,您会使用FileManager方法url(for:in:propertifyfor:create:)来构建文件url: let fileURL = try! FileManager.default .url(for: .applicationSupportDirectory, in: .userDomainMask
如何将DB放置在我的iOS应用程序??路径在哪里?通常,您会使用
FileManager
方法url(for:in:propertifyfor:create:)
来构建文件url:
let fileURL = try! FileManager.default
.url(for: .applicationSupportDirectory, in: .userDomainMask, appropriateFor: nil, create: true)
.appendingPathComponent("test.sqlite")
因此,如果您的捆绑包中有一个空白数据库,您应该将该数据库的初始副本复制到上面的文件URL,然后从那时起使用此URL打开它。或者,如果您是以编程方式从头开始创建数据库,那么您将再次使用生成的文件URL
但不要把这条绝对路径保存在任何地方。总是像上面那样以编程方式构建它
请注意,历史上我们经常使用
.documents目录
来处理类似的问题(您会在web上看到很多这样的答案)。但是现在我们会使用.applicationSupportDirectory
。请参阅文档或视频。通常,您会使用FileManager
方法url(for:in:properted for:create:)
来构建文件url:
let fileURL = try! FileManager.default
.url(for: .applicationSupportDirectory, in: .userDomainMask, appropriateFor: nil, create: true)
.appendingPathComponent("test.sqlite")
因此,如果您的捆绑包中有一个空白数据库,您应该将该数据库的初始副本复制到上面的文件URL,然后从那时起使用此URL打开它。或者,如果您是以编程方式从头开始创建数据库,那么您将再次使用生成的文件URL
但不要把这条绝对路径保存在任何地方。总是像上面那样以编程方式构建它
请注意,历史上我们经常使用
.documents目录
来处理类似的问题(您会在web上看到很多这样的答案)。但是现在我们会使用.applicationSupportDirectory
。请参阅文档或视频。安装应用程序后,我是否可以将数据库放在该路径中?。(我的数据库很大,至少10GB)。根据你的回答,我知道我的数据库必须包含在应用程序包中。是的,你可以随时把它放在那里。我只是想勾勒出一些常见的场景(有些人会动态创建数据库,有些人会随应用程序一起发布)。@Wls作为旁白,一个10 gb的数据库开始让我怀疑你是否真的想在设备上使用它。在处理此类卷时,人们通常会将其放入云中,并编写一个web服务,设备可以调用该服务来检索必要的数据。也许你真的需要离线访问,没有数据共享的需要,在这种情况下,你必须做你必须做的,但只是说,“…实际上,我的数据库是NDS地图数据。”。我正在iOS环境中创建导航系统。我发现我可以将文件放在通过iTunes或Finder下载应用程序。但我还有一个问题。你能回答下面的问题吗?安装应用程序后,我不能将数据库放在该路径中吗?。(我的数据库很大,至少10GB)。根据你的回答,我知道我的数据库必须包含在应用程序包中。是的,你可以随时把它放在那里。我只是想勾勒出一些常见的场景(有些人会动态创建数据库,有些人会随应用程序一起发布)。@Wls作为旁白,一个10 gb的数据库开始让我怀疑你是否真的想在设备上使用它。在处理此类卷时,人们通常会将其放入云中,并编写一个web服务,设备可以调用该服务来检索必要的数据。也许你真的需要离线访问,没有数据共享的需要,在这种情况下,你必须做你必须做的,但只是说,“…实际上,我的数据库是NDS地图数据。”。我正在iOS环境中创建导航系统。我发现我可以将文件放在通过iTunes或Finder下载应用程序。但我还有一个问题。你能回答下面的问题吗?