gpt4 book ai didi

ios - 将 sqlite 数据库共享到 iPhone 应用程序的共享扩展中

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:08:55 27 4
gpt4 key购买 nike

我想将共享扩展集成到我的 iPhone 应用程序中。应用程序包含 sqlite 数据库,其中包含一些电话簿联系人。我将共享扩展添加到应用程序中,并且扩展在共享事件 View Controller 中也是可见的。但问题是我无法访问主应用程序 sqlite 数据库。当我在扩展中记录数据库路径时,它显示的路径与主应用程序 sqlite 数据库路径不同。所以请帮助我了解如何访问主应用程序数据库以从 sqlite 获取数据,以便我可以将它们显示到共享扩展自定义 View Controller 中,并且还想将新数据插入数据库。

最佳答案

在主应用和共享扩展之间共享 UserDefault 和 Sqlite:

在主应用到扩展的数据传输能力中添加“应用组”

  • 要共享 NSUserDefaults 数据:[NSUserDefaults standardUserDefaults] 替换为 [[NSUserDefaults alloc] initWithSuiteName:@"group.com.XXX.XXX"];

  • 如果您在文档目录中复制了 sqlite 文件。因此,将文档目录路径从

    尝试! FileManager.default.url(for:.documentDirectory, in:.userDomainMask,appropriateFor: nil, create:false).appendingPathComponent(fileName)

let fileManager = FileManager.default 
let directory = fileManager.containerURL(forSecurityApplicationGroupIdentifier: "group.com.xxx.xxx")
return directory!.appendingPathComponent(fileName).path
  • 选择目标成员(主要项目和所需类(class)的扩展)
  • 如果您需要在扩展中导入任何 pod,然后编辑 pod 文件
    target 'Main_App' do
# Comment the next line if you're not using Swift and don't want to use dynamic frameworks
use_frameworks!

target 'Main_App_extension' do
use_frameworks!
inherit! :search_paths
pod 'FMDB’
pod 'Kingfisher'

end
end

关于ios - 将 sqlite 数据库共享到 iPhone 应用程序的共享扩展中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45251714/

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