iOSApp中如何将DB放入沙盒区并访问路径?
How to put DB in Sandboxed area in iOS App and access the path?
现在,我在 Linux 和 Window 上使用了数据库数据。
我想把它放在 iPhone 中,并在我的 iOS 应用程序中使用它们。
如何将数据库放入我的iOS应用程序的沙箱区域??路径在哪里?
通常你会使用FileManager
方法url(for:in:appropriateFor:create:)
构建一个文件URL:
let fileURL = try! FileManager.default
.url(for: .applicationSupportDirectory, in: .userDomainMask, appropriateFor: nil, create: true)
.appendingPathComponent("test.sqlite")
因此,如果您的包中有一个空白数据库,您可以将数据库的初始副本复制到上述文件 URL,然后使用 URL 从那个文件中打开它点上。或者,如果您以编程方式从头开始创建数据库,您将再次使用此结果文件 URL
.
但是不要在任何地方保存这个绝对路径。始终像上面一样以编程方式构建它。
请注意,过去我们曾经使用 .documentsDirectory
来处理类似的事情(您会在网络上看到很多类似的答案)。但是现在我们会使用 .applicationSupportDirectory
。观看 iOS Standard Directories: Where Files Reside document or the iOS Storage Best Practices 视频。
现在,我在 Linux 和 Window 上使用了数据库数据。
我想把它放在 iPhone 中,并在我的 iOS 应用程序中使用它们。
如何将数据库放入我的iOS应用程序的沙箱区域??路径在哪里?
通常你会使用FileManager
方法url(for:in:appropriateFor:create:)
构建一个文件URL:
let fileURL = try! FileManager.default
.url(for: .applicationSupportDirectory, in: .userDomainMask, appropriateFor: nil, create: true)
.appendingPathComponent("test.sqlite")
因此,如果您的包中有一个空白数据库,您可以将数据库的初始副本复制到上述文件 URL,然后使用 URL 从那个文件中打开它点上。或者,如果您以编程方式从头开始创建数据库,您将再次使用此结果文件 URL
.
但是不要在任何地方保存这个绝对路径。始终像上面一样以编程方式构建它。
请注意,过去我们曾经使用 .documentsDirectory
来处理类似的事情(您会在网络上看到很多类似的答案)。但是现在我们会使用 .applicationSupportDirectory
。观看 iOS Standard Directories: Where Files Reside document or the iOS Storage Best Practices 视频。